iOS:应用程序崩溃 "-[MFMailComposeInternalViewController _notifyCompositionDidFinish]"

标签 ios objective-c crash mfmailcomposeviewcontroller unrecognized-selector

根据 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/

相关文章:

ios - 分享App应用程序快捷方式【UIApplicationShortcutIconTypeShare】

c - 红黑树书实现(SIGSEGV发生)

cordova - 适用于Visual Studio 2013 CTP3的Cordova工具崩溃或卡住

ios - 如果用户在 swift iOS 中点击两次,则取消 NSURLSession

ios - 360 ImageView 旋转 - 基于用户值的速度

ios - 如果地址行不存在则将其设为空白(Objective-C)

objective-c - NSNotificationCenter - 等待通知发布而不阻塞主线程的方法?

在调用的方法中,iOS UI 元素不会更新

ios - 如何更好地初始化图像: with initWithData method or with imageWithData?

c++ - 如何解决RemoveAStud()中未删除节点并崩溃的问题