我将如何将此代码段转换为Swift3



如何将此代码行转换为swift 3?

activeConversation?.insert(MSMessage, localizedChangeDescription: "photo.jpg", completionHandler: { (error: Error?) in ... }

这是例行程序:

import UIKit 
import Messages
class MessagesViewController: MSMessagesAppViewController { 
    override func viewDidLoad() { 
        super.viewDidLoad()
        // Do any additional setup after loading the view. 
    }
    @IBAction func sendMessageButtonPressed() {
        let components = NSURLComponents()
        let layout = MSMessageTemplateLayout()
        layout.caption = "textbook"
        layout.image = UIImage(named: "textbook.jpg")!
        let message = MSMessage()
        message.url = components.url!
        message.layout = layout
        self.activeConversation?.insert(MSMessage, localizedChangeDescription: "photo.jpg", completionHandler: { (error: Error?) in 
            ...
        })
        ...
    }
}

我遇到了这个错误:

无法使用类型的参数列表调用'插入'(msmessage.type,lotizizedChangeDescription:string,plotehhandler :( nserror?) ->())'

第一个参数应该是 MSMessage的实例,而不仅仅是类型声明。

但是我在当前API中看不到insertMessage:localizedChangeDescription:completionHandler:。但是我确实看到insert(_:completionHandler:)的标题引用了insertMessage:localizedChangeDescription:completionHandler:,这使我怀疑localizedChangeDescription参数虽然可能是API的一部分,但不再是。

在评论中,您向我们展示了您对该MSMessage实例的创建。我怀疑您应该使用它,但是没有任何localizedChangeDescription

activeConversation?.insert(message) { error in
    guard error == nil else {
        print("error: (error!)")
        return
    }
    // do whatever you want upon success here
}

最新更新