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 不适用于模拟器。如果您在真实设备中尝试相同的代码,它会起作用。你的代码没有问题。
我是新手,
我的 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 不适用于模拟器。如果您在真实设备中尝试相同的代码,它会起作用。你的代码没有问题。