ios-приложение аварийно завершает работу при вызове команды iNAPP mail
Когда я щелкаю сообщение Compose sheet с помощью кнопки UIActionSheet, я получаю следующую ошибку. Извините, что они еще мало что значат для меня-все еще учусь: -)
Кто-нибудь может помочь?
Таковы источники возникающих проблем.Это записано в журнале:
2012-06-16 19:10:43.437 Multi Web[2665:4013] XPCProxy получил неверное сообщение: target не предоставил сигнатуру метода для bodyFinishedDrawing 2012-06-16 19:10: 43.489 Multi Web[2665:907] _serviceViewControllerReady: error: Error Domain=XPCObjectsErrorDomain Code=3 "не удалось завершить операцию. (Ошибка XPCObjectsErrorDomain 3.) "
Ура Джеффу
if ([MFMailComposeViewController canSendMail])
{
MFMailComposeViewController *mailer = [[MFMailComposeViewController alloc] init];
mailer.mailComposeDelegate = self;
NSString *subject = [[NSString alloc] initWithFormat:@"Multi Web - Sending %@.txt", _documentFile];
[mailer setSubject:subject];
// Attach an image to the email
NSString *pathFile01 = [NSString stringWithFormat:_documentTXTPath];
NSURL *pdfURLFile01 = [NSURL URLWithString:pathFile01];
NSData *pdfDataFile01 = [NSData dataWithContentsOfURL:pdfURLFile01];
NSString *fileName = [[NSString alloc] initWithFormat:@"%@.txt", _documentFile];
[mailer addAttachmentData:pdfDataFile01 mimeType:@"application/txt" fileName:fileName];
NSString *emailBody =
@"Hi,<br><br>Please find attached the note exported from Multi Web.<br/><br/>Thanks you for using the app.<br/><br/>Kind Regards,<br/>Multi Web Team.";
[mailer setMessageBody:emailBody isHTML:YES];
[self presentModalViewController:mailer animated:YES];
}
// Remove the mail view
[self dismissModalViewControllerAnimated:YES];
- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error
{
switch (result)
{
case MFMailComposeResultCancelled:
NSLog(@"Mail cancelled: you cancelled the operation and no email message was queued.");
break;
case MFMailComposeResultSaved:
NSLog(@"Mail saved: you saved the email message in the drafts folder.");
break;
case MFMailComposeResultSent:
NSLog(@"Mail send: the email message is queued in the outbox. It is ready to send.");
break;
case MFMailComposeResultFailed:
NSLog(@"Mail failed: the email message was not saved or queued, possibly due to an error.");
break;
default:
NSLog(@"Mail not sent.");
break;
}
// Remove the mail view
[self dismissModalViewControllerAnimated:YES];
}
1 ответ:
Правильный ответ-удалить
[self dismissModalViewControllerAnimated:YES]
Сразу после метода presentModalViewController.
Сбой происходит потому, что вы закрываете контроллер модального представления вскоре после его представления и пытаетесь закрыть его снова (который уже освобожден) в делегате обратного вызова.
Вы можете прочитать о том, как отправить электронное письмо в приложении здесь на моем посте.
Http://blog.mugunthkumar.com/coding/iphone-tutorial-in-app-email/