難しい問題があります。私のアプリの 1 つで、150.000 を超えるダウンロードが行われています... ほとんど発生せず、理解できない問題があります。
問題は次のとおりです。ユーザーがメールでリストを共有できるビューで、 を使用してメール ウィンドウを開きますMFMailComposeViewController
。ただし、いくつかのケースでは、メール コンポーザを使用するとアプリで問題が発生するようです。ユーザーが共有ボタンを押すと、メール ウィンドウが上にスライドし、約 1 ~ 2 秒待ってから再び閉じます。データを送信していますが、メール ウィンドウにコンテンツがありません。私自身は、どのデバイスでもシミュレーターでも問題を再現できませんでしたが、同僚の 1 人が再現しました。彼の電話で XCode を使用してアプリを実行したところ、ログに次のように記録されました。
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.)"
「com.apple.MailCompositionServiceからのフェンスバリアの待機中にタイムアウトしました」というエラーをグーグルで検索しましたが、実際には何の助けも見つかりません。
誰もこれについて経験がありますか?どうすれば解決できますか?
ビューを開くための私のコード:
-(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];
}
}