J'ai un problème délicat. Dans une de mes applications, avec plus de 150.000 téléchargements... J'ai un problème qui se produit rarement et que je n'arrive pas à résoudre.
Le problème est le suivant : Dans une vue où l'utilisateur peut partager une liste par courrier électronique, j'ouvre la fenêtre de courrier à l'aide de MFMailComposeViewController
. Cependant, dans certains cas, l'application semble rencontrer un problème lors de l'utilisation du compositeur de courrier. L'utilisateur appuie sur le bouton de partage, la fenêtre de courrier s'ouvre, attend environ 1 à 2 secondes, puis se referme. Il n'y a pas de contenu dans la fenêtre de courrier, bien que j'y envoie des données. Je n'ai pas été en mesure de recréer le problème sur un appareil ou dans le simulateur, mais un collègue l'a fait. J'ai exécuté l'application en utilisant XCode sur son téléphone et j'ai obtenu ce qui suit dans les journaux :
2013-03-01 14:43:39.604 appname[318:907] <MFMailComposeRemoteViewController: 0x1ebfb100> timed out waiting for fence barrier from com.apple.MailCompositionService
2013-03-01 14:43:39.631 appname[318:907] viewServiceDidTerminateWithError: Error Domain=XPCObjectsErrorDomain Code=2 "The operation couldn’t be completed. (XPCObjectsErrorDomain error 2.)"
J'ai cherché sur Google l'erreur "timed out waiting for fence barrier from com.apple.MailCompositionService" mais je n'ai pas trouvé d'aide.
Quelqu'un a-t-il une expérience en la matière ? Comment puis-je résoudre ce problème ?
Mon code pour ouvrir la vue :
-(void)displayComposerSheetWithBodyString:(NSString *)aBody
{
if ([MFMailComposeViewController canSendMail])
{
MFMailComposeViewController *picker = [[MFMailComposeViewController alloc]init];
picker.mailComposeDelegate = self;
[picker setSubject:@"Lista"];
NSString *emailBody = aBody;
[picker setMessageBody:emailBody isHTML:NO];
[self.navigationController presentModalViewController:picker animated:YES];
}
else
{
[[[UIAlertView alloc]initWithTitle:NSLocalizedString(@"Din enhet är inte redo att skicka e-post. Kontrollera dina inställningar", nil)
message:nil
delegate:self
cancelButtonTitle:NSLocalizedString(@"OK", nil)
otherButtonTitles:nil]
show];
}
}