ios - 调用InApp邮件命令时应用程序崩溃

时间:2012-06-16 07:13:35

标签: ios delegates uiactionsheet mfmailcomposeviewcontroller

当我通过UIActionSheet按钮输入Message Compose表时,我收到以下错误。对不起这些对我来说意义不大 - 还在学习: - )

有人可以帮忙吗?

这些是出现问题的根源。

list that appears when the app crashes.

Green Bar error

这是在日志中:

  

2012-06-16 19:10:43.437 Multi Web [2665:4013] XPCProxy收到错误消息:target没有为bodyFinishedDrawing提供方法签名   2012-06-16 19:10:43.489 Multi Web [2665:907] _serviceViewControllerReady:error:Error Domain = XPCObjectsErrorDomain Code = 3“无法完成操作。(XPCObjectsErrorDomain error 3。)”

干杯杰夫

        if ([MFMailComposeViewController canSendMail])
    {
        MFMailComposeViewController *mailer = [[MFMailComposeViewController alloc] init];
        mailer.mailComposeDelegate = self;

        NSString *subject = [[NSString alloc] initWithFormat:@"Multi Web - Sending %@.txt", _documentFile];

        [mailer setSubject:subject];

        // Attach an image to the email
        NSString *pathFile01 = [NSString stringWithFormat:_documentTXTPath];
        NSURL *pdfURLFile01 =  [NSURL URLWithString:pathFile01];
        NSData *pdfDataFile01 = [NSData dataWithContentsOfURL:pdfURLFile01];
        NSString *fileName = [[NSString alloc] initWithFormat:@"%@.txt", _documentFile];
        [mailer addAttachmentData:pdfDataFile01 mimeType:@"application/txt" fileName:fileName];

        NSString *emailBody = 
       @"Hi,<br><br>Please find attached the note exported from Multi Web.<br/><br/>Thanks you for using the app.<br/><br/>Kind Regards,<br/>Multi Web Team.";


        [mailer setMessageBody:emailBody isHTML:YES];

        [self presentModalViewController:mailer animated:YES];
    }

    // Remove the mail view
    [self dismissModalViewControllerAnimated:YES];



- (void)mailComposeController:(MFMailComposeViewController*)controller  didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error
 {
 switch (result)
 {
    case MFMailComposeResultCancelled:
        NSLog(@"Mail cancelled: you cancelled the operation and no email message was queued.");
        break;
    case MFMailComposeResultSaved:
        NSLog(@"Mail saved: you saved the email message in the drafts folder.");
        break;
    case MFMailComposeResultSent:
        NSLog(@"Mail send: the email message is queued in the outbox. It is ready to send.");
        break;
    case MFMailComposeResultFailed:
        NSLog(@"Mail failed: the email message was not saved or queued, possibly due to an error.");
        break;
    default:
        NSLog(@"Mail not sent.");
        break;
}

// Remove the mail view
[self dismissModalViewControllerAnimated:YES];

}

1 个答案:

答案 0 :(得分:1)

正确的答案是删除

[self dismissModalViewControllerAnimated:YES] 

就在presentModalViewController方法之后。

你正在崩溃,因为你在模拟视图控制器出现后立即将其解除,并尝试在回调委托中再次解除它(已经解除分配)。

您可以在我的帖子上阅读有关如何发送应用内电子邮件的信息。

http://blog.mugunthkumar.com/coding/iphone-tutorial-in-app-email/

相关问题