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

我将我的应用程序转换为swift 3.0,并与MailComposeController有问题。 当我打电话function:

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

首先我有一个信息错误: 在这里输入图像说明

什么是我的奇怪,因为我从MFMailComposeViewControllerDelegate复制和粘贴这个方法。 当我更改ErrorNSError它的作品,但我收到警告与信息,此方法需要是私人的,以避免此警告。

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

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

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

完整代码:

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