Email composure iOS 8
Я пытаюсь открыть самообладание электронной почты в iOS 8 из Xcode 6, но получаю ошибку. Тот же код работает нормально, если я пытаюсь из Xcode 5. Позже я скачал пример кода с портала разработчика Apple:
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 ошибка 3.)" UserInfo=0x7b93f7e0 Служба подключения Interservice
а также
2014-09-17 22:04:22.538 MessageComposer[10993:205761] истекло время ожидания для ограждения из com.apple.MailCompositionService
1 ответ
Судя по всему, это проблема только для симуляторов. (Симулятор iOS 8) Подход globalMailer работает нормально на устройствах.
Если кто-то сталкивается с этой проблемой, просто протестируйте на реальном устройстве.