I'm trying to open email composure in iOS 8 from Xcode 6, but getting an error. The same code is working fine if I'm trying from Xcode 5. Later I downloaded a sample code from apple developer portal:
https://developer.apple.com/library/content/samplecode/MessageComposer/Introduction/Intro.html
But the result is same. Is there something, or some setting, I'm missing to optimise the code for Xcode 6
Here is the code: in my button action
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];
email delegate
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];
result:
email composure delegate disappearing automatically with result 0, i.e., MFMailComposeResultCancelled
with error codes : MessageComposer[10993:196902] viewServiceDidTerminateWithError: Error Domain=_UIViewServiceInterfaceErrorDomain Code=3 "The operation couldn’t be completed. (_UIViewServiceInterfaceErrorDomain error 3.)" UserInfo=0x7b93f7e0 {Message=Service Connection Interrupted}
and
2014-09-17 22:04:22.538 MessageComposer[10993:205761] timed out waiting for fence barrier from com.apple.MailCompositionService
By the looks of it, this is a simulator-only issue. (iOS 8 simulator) The globalMailer approach works ok on devices.
If anyone encounters this problem, just test on a real device.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With