电子邮件撰写 iOS 8

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: 错误 Domain=_UIViewServiceInterfaceErrorDomain Code=3 "操作无法完成。 (_UIViewServiceInterfaceErrorDomain错误3。)" UserInfo=0x7b93f7e0 {Message=服务连接中断}

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


2
有什么错误?在你的问题中展示相关的代码。 - rmaddy
再说一遍,错误是什么?哪一行? - rmaddy
请查看此问题:https://dev59.com/ll8e5IYBdhLWcg3wlbFR - hoiberg
1
@hoiberg42,你说得对,这就是在邮件组成控制器自动关闭后我收到的错误代码。 - Chahal
2
我刚在 iOS 8 设备上进行了测试,全局邮件发送器似乎可以正常工作。因此这一定是模拟器的问题... - Vrasidas
显示剩余2条评论
1个回答

102

看起来,这只是一个模拟器问题。(iOS 8 模拟器) 全局邮件发送器方法在设备上运行良好。

如果有人遇到此问题,请在真实设备上测试。


我只在模拟器中遇到了这个问题。通过测试飞行在设备上测试,一切正常。 - mikebz
1
如果您在运行iOS7.1的模拟器上进行测试,您的代码也将正常工作。 - Jesus
我在iOs模拟器上也遇到了同样的问题,但是在真实设备上却运行良好。 :) - ilovebali
6
这还在继续怎么办?在模拟器上,我对9.1和9.0都得到了同样的错误。 - Greg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接