MailCompositionService 意外退出 ios

MailCompositionService quit unexpectedly ios

我是新手,

我的 viewController、

中有此代码
- (void)sendMail:(id)sender {
    NSArray *to = [NSArray arrayWithObjects:@"rayjada11@gmail.com", nil];

    mailComposer = [[MFMailComposeViewController alloc] init];
    mailComposer.mailComposeDelegate = self;
    [mailComposer setToRecipients:to];
    [mailComposer setSubject:@"Test Mail"];
    [mailComposer setMessageBody:@"Testing message body" isHTML:NO];
    [self presentModalViewController:mailComposer animated:YES];
}



#pragma mark - mail compose delegate
-(void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error {
    if(result) {
        NSLog(@"Result = %d", result);
    }
    if(error) {
        NSLog(@"Error = %@", error);
    }
    [self dismissModalViewControllerAnimated:YES];
}

但是当我点击我的控制器中的发送按钮时,我收到了这样的错误,

2016-09-05 14:55:24.488 mailDemo[1276:104171] viewServiceDidTerminateWithError: Error Domain=_UIViewServiceInterfaceErrorDomain Code=3 "(null)" UserInfo={Message=Service Connection Interrupted} 2016-09-05 14:55:24.989 mailDemo[1276:104171] Trying to dismiss the presentation controller while transitioning already. (<_UIFullscreenPresentationController: 0x7fe35b52d2a0>) 2016-09-05 14:55:24.991 mailDemo[1276:104171] transitionViewForCurrentTransition is not set, presentation controller was dismissed during the presentation? (<_UIFullscreenPresentationController: 0x7fe35b52d2a0>)

问题是什么?

您的代码没有问题。MFMailComposeViewController 不适用于模拟器,请在真实设备中尝试相同的代码。

模拟器不支持该方法且设备不登录邮件,该方法无响应。

替换此方法::

- (void)sendMail:(id)sender {


    if (![MFMailComposeViewController canSendMail]) {
        NSLog(@"Mail services are not available.");
        return;
    }
    else{
            NSArray *to = [NSArray arrayWithObjects:@"rayjada11@gmail.com", nil];

            mailComposer = [[MFMailComposeViewController alloc] init];
            mailComposer.mailComposeDelegate = self;
            [mailComposer setToRecipients:to];
            [mailComposer setSubject:@"Test Mail"];
            [mailComposer setMessageBody:@"Testing message body" isHTML:NO];
            [self presentModalViewController:mailComposer animated:YES];
        }
}

MFMailComposeViewController 不适用于模拟器。如果您在真实设备中尝试相同的代码,它会起作用。你的代码没有问题。