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

MailComposer didFinishWith results doesn't work in Swift 3.0

我将我的应用程序转换为 swift 3.0,但 MailComposeController 出现问题。当我调用函数时:

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

首先我的信息有误:

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

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

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

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

完整代码:

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