根据 crashlytic,有人在使用 iPad 时崩溃了。他们收到的崩溃错误是 -[MFMailComposeInternalViewController _notifyCompositionDidFinish]
我不知道这是怎么发生的。这是异常(exception)
崩溃:com.apple.main-thread
0x0000000c 处的 EXC_BAD_ACCESS KERN_INVALID_ADDRESS
这是原始数据
Thread : Crashed: com.apple.main-thread
0 libobjc.A.dylib 0x30fa4f46 objc_msgSend + 5
1 MessageUI 0x252e5f01 -[MFMailComposeInternalViewController _notifyCompositionDidFinish] + 464
2 CoreFoundation 0x23524294 __invoking___ + 68
3 CoreFoundation 0x23451435 -[NSInvocation invoke] + 300
4 libdispatch.dylib 0x314f87bb _dispatch_call_block_and_release + 10
5 libdispatch.dylib 0x314f87a7 _dispatch_client_callout + 22
6 libdispatch.dylib 0x314fbfa3 _dispatch_main_queue_callback_4CF + 718
7 CoreFoundation 0x234e59d1 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 8
8 CoreFoundation 0x234e40d1 __CFRunLoopRun + 1512
9 CoreFoundation 0x23432211 CFRunLoopRunSpecific + 476
10 CoreFoundation 0x23432023 CFRunLoopRunInMode + 106
11 GraphicsServices 0x2a7c20a9 GSEventRunModal + 136
12 UIKit 0x26a3e1d1 UIApplicationMain + 1440
13 MyApp 0x0009e7e7 main (main.m:16)
不确定如何诊断。
最佳答案
当释放 MFMailComposeInternalViewController
对象并触发 MFMailComposeInternalViewControllerDelegate
时,会发生此崩溃。
确保保留您的 MFMailComposeInternalViewController
对象,直到在委托(delegate)触发之后,您才可以安全地关闭 MFMailComposeInternalViewController
对象。
-(void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error
{
switch (result) {
case MFMailComposeResultCancelled:
break;
case MFMailComposeResultSaved:
break;
case MFMailComposeResultSent:
break;
case MFMailComposeResultFailed:
break;
default:
break;
}
[controller dismissViewControllerAnimated:YES completion:nil];
}
关于iOS:应用程序崩溃 "-[MFMailComposeInternalViewController _notifyCompositionDidFinish]",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27044469/