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

Wiz*_*ard 5 crash objective-c ios unrecognized-selector mfmailcomposeviewcontroller

根据崩溃的人在使用iPad时崩溃.他们收到的崩溃错误是-[MFMailComposeInternalViewController _notifyCompositionDidFinish]我不知道这是怎么发生的.这是例外 Crashed: com.apple.main-thread EXC_BAD_ACCESS KERN_INVALID_ADDRESS at 0x0000000c

这是原始数据

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)
Run Code Online (Sandbox Code Playgroud)

不知道我怎么诊断它.

Cha*_*ake 3

MFMailComposeInternalViewController当对象被释放并触发时会发生这种崩溃MFMailComposeInternalViewControllerDelegate

确保保留您的MFMailComposeInternalViewController对象,直到委托触发,然后您可以安全地解散该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];
}
Run Code Online (Sandbox Code Playgroud)