你應該檢查是MFMailComposeViewController能夠發送你的郵件之前,試圖發送它(例如用戶不能在iOS設備上的任何郵件帳戶)。
所以你的情況爲Objective-C的:
MFMailComposeViewController *myMailCompose = [[MFMailComposeViewController alloc] init];
if ([MFMailComposeViewController canSendMail]) {
myMailCompose.mailComposeDelegate = self;
[myMailCompose setSubject:@"Subject"];
[myMailCompose setMessageBody:@"message" isHTML:NO];
[self presentViewController:myMailCompose animated:YES completion:nil];
} else {
// unable to send mail, notify your users somehow
}
斯威夫特3:
let myMailCompose = MFMailComposeViewController()
if !MFMailComposeViewController.canSendMail() {
myMailCompose.mailComposeDelegate = self
myMailCompose.setSubject("Subject")
myMailCompose.setMessageBody("message", isHTML: false)
self.present(myMailCompose, animated: true, completion: nil)
} else {
// unable to send mail, notify your users somehow
}
這個崩潰可能是設備無關。我的猜測是,它沒有崩潰的設備有一個郵件帳戶配置,另一個沒有。 – jszumski