使用MFMailComposeViewController问题时,(Issue when using

2019-07-20 18:52发布

我有一个棘手的问题。 在我的应用程序,拥有超过150.000下载一个......我有很少发生,并且我似乎无法找出一个问题。

问题是这样的:在一个视图中,用户可以通过电子邮件共享列表,我使用打开邮件窗口MFMailComposeViewController 。 然而,在某些少数情况下,应用程序似乎使用邮件撰写得到的一个问题。 用户按下分享按钮,邮件窗口向上滑动时,等待约1-2秒,然后再次关闭。 在邮件窗口中没有的内容,虽然我将数据发送给它。 我自己一直没能在任何设备上或在模拟器上重新创建问题,但是一个同事了。 我跑了他的手机上使用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.)"

我用Google搜索“超时从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];
    }
}

Answer 1:

不知道你是否已经解决了问题,但我已经在我的项目最近遇到它。

一种解决方法我所做的就是分配和在较早阶段开始MFMailComposeViewController,并保持在一个静态变量 ,每当它的需要,获取静态MFMailComposeViewController实例,并展示它。

这似乎为我工作,希望它会为你工作了。



Answer 2:

一个有同样的问题,而这种定势帮我:

https://twitter.com/christian_beer/statuses/321295533077565440

“@nathangaskin好......那是很久以前:)但是,如果我没记错的话,它的工作之后,我删除从我UIAppearance代码自定义字体”

这对我来说可以。

此外,第二个选择是简单的包装显示的呼叫到

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.3 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{



Answer 3:

我有完全一样的问题。 我想我已经把它钉到它需要制定消息体字符串的时间。

从评论内容

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


文章来源: Issue when using MFMailComposeViewController