MailCompositionService意外退出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:错误Domain=_UIViewServiceInterfaceErrorDomain Code=3 "(null)"UserInfo={Message=服务连接中断}2016-09-0514:55:24.989 mailDemo[1276:104 . 171]试图取消演示控制器,而过渡已经。(<_UIFullscreenPresentationController: 0x7fe35b52d2a0>) 2016-09-0514:55:24.991 mailDemo[1276:104171] transitionViewForCurrentTransition未设置,表示控制器在演讲吗?(& lt; _UIFullscreenPresentationController: 0 x7fe35b52d2a0>)

有什么问题吗?

您的代码没有任何问题。

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不适用于模拟器。如果您在实际设备中尝试相同的代码,它将工作。你的代码没有问题

相关内容

最新更新