51

我正在尝试从 Xcode 6 在 iOS 8 中打开电子邮件镇静,但出现错误。如果我从 Xcode 5 尝试,相同的代码可以正常工作。后来我从苹果开发者门户下载了一个示例代码:

https://developer.apple.com/library/content/samplecode/MessageComposer/Introduction/Intro.html

但结果是一样的。有什么东西或一些设置,我缺少优化 Xcode 6 的代码

这是代码:在我的按钮操作中

MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];

picker.mailComposeDelegate = self;

[picker setSubject:@"Hello from California!"];

// Set up recipients
NSArray *toRecipients = [NSArray arrayWithObject:@"first@example.com"]; 
NSArray *ccRecipients = [NSArray arrayWithObjects:@"second@example.com", @"third@example.com", nil]; 
NSArray *bccRecipients = [NSArray arrayWithObject:@"fourth@example.com"]; 

[picker setToRecipients:toRecipients];
[picker setCcRecipients:ccRecipients];  
[picker setBccRecipients:bccRecipients];

// Attach an image to the email
NSString *path = [[NSBundle mainBundle] pathForResource:@"rainy" ofType:@"jpg"];
NSData *myData = [NSData dataWithContentsOfFile:path];
[picker addAttachmentData:myData mimeType:@"image/jpeg" fileName:@"rainy"];

// Fill out the email body text
NSString *emailBody = @"It is raining in sunny California!";
[picker setMessageBody:emailBody isHTML:NO];

[self presentViewController:picker animated:YES completion:NULL];

电子邮件代表

self.feedbackMsg.hidden = NO;
// Notifies users about errors associated with the interface
switch (result)
{
    case MFMailComposeResultCancelled:
        self.feedbackMsg.text = @"Result: Mail sending canceled";
        break;
    case MFMailComposeResultSaved:
        self.feedbackMsg.text = @"Result: Mail saved";
        break;
    case MFMailComposeResultSent:
        self.feedbackMsg.text = @"Result: Mail sent";
        break;
    case MFMailComposeResultFailed:
        self.feedbackMsg.text = @"Result: Mail sending failed";
        break;
    default:
        self.feedbackMsg.text = @"Result: Mail not sent";
        break;
}

[self dismissViewControllerAnimated:YES completion:NULL];

结果:

电子邮件镇静委托自动消失,结果为 0,即 MFMailComposeResultCancelled

错误代码:MessageComposer[10993:196902] viewServiceDidTerminateWithError: Error Domain=_UIViewServiceInterfaceErrorDomain Code=3“操作无法完成。(_UIViewServiceInterfaceErrorDomain error 3.)”UserInfo=0x7b93f7e0 {Message=Service Connection Interrupted}

2014-09-17 22:04:22.538 MessageComposer [10993:205761] 等待来自 com.apple.MailCompositionService 的栅栏屏障超时

4

1 回答 1

102

从外观上看,这是一个仅限模拟器的问题。(iOS 8 模拟器) globalMailer 方法在设备上运行良好。

如果有人遇到这个问题,只需在真机上测试即可。

于 2014-09-23T17:58:46.283 回答