ios - 无法将类型 'MyClass' 的值分配给类型 'MFMailComposeViewControllerDelegate!' 的值

标签 ios swift delegates mfmailcomposeviewcontroller

我正在尝试在 iOS 中通过以下方式发送电子邮件:

var picker = MFMailComposeViewController()
picker.mailComposeDelegate = self
picker.setSubject("Mic Data")

var messageBody = NSMutableString()

for var index = 0; index<array.count; index++ {
    messageBody.appendString(String(format: "%@\n", arguments: [array.objectAtIndex(index) as! String]))
}

picker.setMessageBody(messageBody as String, isHTML: false)

presentViewController(picker, animated: true, completion: nil)

但是我在行 picker.mailComposeDelegate = self 上遇到错误。但它应该工作。我以这种方式设置委托(delegate) class MainTableViewController: UITableViewController, MFMessageComposeViewControllerDelegate 并使用委托(delegate)方法:

func messageComposeViewController(controller: MFMessageComposeViewController!, didFinishWithResult result: MessageComposeResult) {
    self.dismissViewControllerAnimated(true, completion: nil)
}

我做错了什么?

最佳答案

您将 MFMessageComposeViewControllerDelegate 添加到您的类中,而不是 MFMailComposeViewControllerDelegate。容易犯的错误。

关于ios - 无法将类型 'MyClass' 的值分配给类型 'MFMailComposeViewControllerDelegate!' 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29496773/

相关文章:

iOS Swift 添加对象到数组

c# - 将委托(delegate)传递给 WPF WebBrowser.InvokeScript 方法

Cocoa:对使用 CoreData 和 Bindings 与 UI 对象交互感到困惑

objective-c - 使用 Afnetworking 获取 UIImageView 并将其放入数组中

iphone - ALAssetsLibrary 更改通知未在 ios 5 中触发?

ios - 如何将本地文件流式传输到 Chromecast?

swift - 在 Swift 中用逗号分隔多个 if 条件

swift - Cocoapods 不工作 Xcode 9.2

swift - Xcode 6 不能用//取消注释字符串

c# - 在应用依赖注入(inject)时,Func<in T, out TResult> 是否适合用作 ctor arg?