2016-09-20 3 views
5

Я преобразовал свое приложение в swift 3.0 и возникли проблемы с MailComposeController. Когда я вызываю функцию:MailComposer didFinishWith результаты не работают в Swift 3.0

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

в первую очередь у меня ошибка с информацией: enter image description here

что странно для моего, becouse скопировать и вставить этот метод из MFMailComposeViewControllerDelegate. Когда я меняю Error на NSError, он работает, но я получаю предупреждение с информацией, этот метод должен быть конфиденциальным, чтобы избежать этого предупреждения.

Когда я нахожусь в mailComposer и вижу электронную почту и пытаюсь нажать Cancel, этот контроллер не исчезнет. Любое решение, как отклонить этот контроллер?

+0

же код работает отлично для меня. Вы очистили и перестроили свой код? –

+0

Да, я делаю все, что могу, но все же имею эту тупую ошибку. – PiterPan

ответ

10

У меня была такая же проблема, потому что я импортировал RealmSwift, у которого есть своя структура Error.

Исправьте его, указав, какой тип ошибки вы хотите. В этом случае Swift.Error.

Полный код:

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

Проблемы с именованием F * cking. Это становится еще более забавным, когда вы создаете свой собственный класс «Ошибка» – fnc12

Смежные вопросы