MFMailComposeViewController canSendMail在特定方案中不返回正确的值

时间:2012-01-16 17:59:57

标签: objective-c foreground mailing

我发现[MFMailComposeViewController canSendMail]在创建/删除邮件帐户后从应用程序唤醒应用程序时返回错误的值。

在我的应用程序中,只有在邮件可用时才有一些相关的功能。因此,我想禁用在canSendMail检查中使用它的可能性。

一切正常,而不是以下场景: 1.删​​除/禁用iPhone上的邮件帐户(现在我正在使用iOS 4.2进行测试) 2.启动应用程序 - 以正确的方式禁用所有内容。 3.按主页按钮,然后打开设置。创建和设置邮件帐户。 4.返回应用程序 - [MFMailComposeViewController canSendMail]返回NO,但设置了邮件帐户。 5.按主页按钮,然后再次返回应用程序 - [MFMailComposeViewController canSendMail]返回YES,应该如此。

此外,当我们打开应用程序,转到设置,删除邮件帐户,返回应用程序时,此行为是可重现的, - 删除后第一个应用程序打开的canSendMail返回YES,第二个应用程序打开时返回NO。 / p>

我在ApplicationDelegate的[MFMailComposeViewController canSendMail]函数中检查- (void)applicationWillEnterForeground:(UIApplication *)application

在我看来,MFMailComposeViewController存储值并且有一些事件迫使它重新读取邮件可用性。此外,我尝试在正确的线程上添加一些等待(1-2秒),或者在邮件设置和运行我的应用程序之间运行其他应用程序 - 没有任何帮助。

您对我如何为canSendMail获得正确价值有任何想法吗?否则,唯一的办法是杀死发现此错误的QA ......


以下代码也不起作用。

Class mailClass = (NSClassFromString(@"MFMailComposeViewController")); 
if (mailClass != nil) 
{ 
    return [mailClass canSendMail]; 
} 
return NO;

有什么建议吗?

0 个答案:

没有答案