2014-09-17 5 views
51

Sto provando ad aprire la composizione di email in iOS 8 da Xcode 6, ma ricevendo un errore. Lo stesso codice sta lavorando bene, se sto cercando da Xcode 5. In seguito ho scaricato un codice di esempio dal portale per gli sviluppatori di Apple:Email composure iOS 8

https://developer.apple.com/library/content/samplecode/MessageComposer/Introduction/Intro.html

Ma il risultato è lo stesso. C'è qualcosa, o qualche impostazione, mi manca per ottimizzare il codice per Xcode 6

Ecco il codice: nel mio pulsante di azione

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 delegato

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]; 

risultato :

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}

e

2014-09-17 22:04:22.538 MessageComposer[10993:205761] timed out waiting for fence barrier from com.apple.MailCompositionService

+2

Qual è l'errore? Mostra il codice pertinente nella tua domanda. – rmaddy

+0

Ancora, qual è l'errore? Quale linea? – rmaddy

+0

Vedi questa domanda: http://stackoverflow.com/questions/25604552/i-have-real-misunderstanding-with-mfmailcomposeviewcontroller-in-swift-ios8-in – hoiberg

risposta

103

A quanto sembra, questo è un problema di solo simulatore. (simulatore iOS 8) L'approccio globalMailer funziona correttamente sui dispositivi.

Se qualcuno incontra questo problema, prova solo su un dispositivo reale.

+0

Ho avuto il problema anche nel simulatore. Testato sul dispositivo tramite volo di prova e andava bene. – mikebz

+1

se esegui il test su un simulatore con iOS7.1 il tuo codice funzionerà bene pure – Jesus

+0

Ho lo stesso problema anche sul simulatore di iOs, ma sul dispositivo reale funziona benissimo :) – ilovebali