2016-09-20 20 views
5

Tôi đã chuyển đổi ứng dụng của mình thành nhanh chóng 3.0 và gặp sự cố với MailComposeController. Khi tôi gọi hàm:MailComposer didFinishWith kết quả không hoạt động trong Swift 3.0

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

trước hết là tôi có một lỗi với thông tin: enter image description here

gì là xa lạ đối với tôi, vì tôi sao chép và dán phương pháp này từ MFMailComposeViewControllerDelegate. Khi tôi thay đổi Error thành NSError hoạt động nhưng tôi nhận được cảnh báo với thông tin, phương pháp này cần phải ở chế độ riêng tư để tránh cảnh báo này.

Khi tôi ở trong mailComposer và xem email và cố gắng nhấn Cancel bộ điều khiển này không biến mất. Bất kỳ giải pháp làm thế nào để loại bỏ bộ điều khiển này?

+0

Cùng mã đang làm việc tốt cho tôi. Bạn đã làm sạch và xây dựng lại mã của mình chưa? –

+0

vâng, tôi làm tất cả những gì tôi có thể, nhưng vẫn có lỗi ngu ngốc này – PiterPan

Trả lời

10

Tôi gặp vấn đề tương tự vì tôi đã nhập RealmSwift, cấu trúc có cấu trúc Error riêng.

Khắc phục sự cố bằng cách chỉ định loại Lỗi bạn muốn. Trong trường hợp này, Swift.Error.

Full Code:

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

F * cking vấn đề đặt tên. Nó trở nên buồn cười hơn khi bạn tạo lớp 'Lỗi' của riêng bạn – fnc12

Các vấn đề liên quan