Электронная почта спокойствие iOS 8


Я пытаюсь открыть email composure в 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:@"[email protected]"]; 
NSArray *ccRecipients = [NSArray arrayWithObjects:@"[email protected]", @"[email protected]", nil]; 
NSArray *bccRecipients = [NSArray arrayWithObject:@"[email protected]"]; 

[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: ошибка Домен=_UIViewServiceInterfaceErrorDomain код=3 " операция не может быть завершена. (_UIViewServiceInterfaceErrorDomain Ошибка 3.)" UserInfo=0x7b93f7e0 {сообщение = прервано служебное соединение}

и

2014-09-17 22:04:22.538 MessageComposer[10993:205761] тайм-аут в ожидании барьер загородки от com.яблоко.MailCompositionService

1   51  

1 ответ:

судя по всему, это проблема только для симуляторов. (iOS 8 симулятор) Подход globalMailer работает нормально на устройствах.

Если кто-то сталкивается с этой проблемой, просто протестировать на реальном устройстве.