MailComposer didFinishWith结果在Swift 3.0中不起作用

时间:2016-09-20 19:04:40

标签: ios swift swift3 mfmailcomposer

我将我的应用转换为swift 3.0并遇到MailComposeController问题。当我打电话给函数时:

`func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Error?){
    controller.dismiss(animated: true, completion: nil)
}`

首先我的信息有错误: enter image description here

对我来说有什么奇怪的,因为我从MFMailComposeViewControllerDelegate复制并粘贴了这个方法。当我将Error更改为NSError时,它可以正常工作,但我收到一条带有信息的警告,此方法需要保密才能避免此警告。

当我在mailComposer中并看到电子邮件并尝试点击Cancel时,此控制器不会消失。任何解决方案如何解雇这个控制器?

1 个答案:

答案 0 :(得分:11)

我遇到了同样的问题,因为我导入了RealmSwift,它有自己的Error结构。

通过指定所需的错误类型来修复它。在这种情况下,Swift.Error

完整代码:

func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Swift.Error?){
    controller.dismiss(animated: true, completion: nil)
}