MailComposer didFinishWith results doesn't work in Swift 3.0

喜你入骨 提交于 2019-11-28 01:13:16

问题


I converted my app to swift 3.0 and have a problem with MailComposeController. When I call function:

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

first of all I have an error with info:

what is strange for my, becouse I copy and paste this method from MFMailComposeViewControllerDelegate. When I change Error to NSError it works, but I receive a warning with info, this method needs to be private to avoid this warning.

When I'm in mailComposer and see email and try to tap Cancel this controller doesn't disapear. Any solution how to dismiss this controller?


回答1:


I had the same problem because I was importing RealmSwift, which has its own Error struct.

Fix it by specifying which Error type you want. In this case, Swift.Error.

Full Code:

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


来源:https://stackoverflow.com/questions/39601954/mailcomposer-didfinishwith-results-doesnt-work-in-swift-3-0

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!