27

難しい問題があります。私のアプリの 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];
    }
}
4

3 に答える 3

13

問題が解決したかどうかはわかりませんが、最近私のプロジェクトで発生しました。

私が行った回避策は、初期段階で MFMailComposeViewController を割り当てて開始し、それを 1 つの静的変数に保持し、必要なときはいつでも静的な MFMailComposeViewController インスタンスを取得して提示することでした。

それは私にとってはうまくいくようです。あなたにもうまくいくことを願っています。

于 2013-06-18T08:00:09.763 に答える
4

私はまったく同じ問題を抱えています。メッセージ本文の文字列を定式化するのにかかる時間に釘付けになったと思います。

コメントの内容

 //Message Body 
NSString *msgBody = [NSString stringWithFormat:
                        @"I noticed these results in pocketKPI. The %@ was at %@ which is a variance of %@(or %@) to the target defined as %@. When you have some time let's discuss.", 
                        self.itemToView.kpiName, 
                        [DFSKpiFormatter formatNumberAsString:self.itemToView.currentValue], [self.itemToView determineVarianceLabelText],
                        [self.itemToView determineVariancePercentLabelText], 
                        [DFSKpiFormatter formatNumberAsString:self.itemToView.targetValue]];
于 2013-03-20T22:20:41.423 に答える