代码之家  ›  专栏  ›  技术社区  ›  Raj Pawan Gumdal

mfmailcomposeviewController的“无邮件帐户”警报有问题-sdk 3.0与sdk 4.0

  •  4
  • Raj Pawan Gumdal  · 技术社区  · 14 年前

    我在为不同的基本SDK构建这段代码时遇到问题:

    MFMailComposeViewController *mail = nil;
    mail = [[MFMailComposeViewController alloc] init];
    NSString *description = @"Some mail string";
    if([MFMailComposeViewController canSendMail])
    {
        mail.mailComposeDelegate =self;
        [mail setSubject:story.title];
        [mail setMessageBody:[NSString stringWithFormat:(NSString *)kMessageBodyFormat,description,story.webLink] isHTML:NO];
    }
    [self presentModalViewController:mail animated:YES];
    [mail release];
    mail=nil;
    

    当我用base sdk 3.0构建它时,如果 MFMailComposeViewController's 初始化返回nil,如果用户没有任何邮件帐户,系统将发出默认的“无邮件帐户”警报。

    但是当我用base sdk 4.0构建它并为3.0操作系统部署它时,如果用户没有任何邮件帐户,那么系统不会显示相同的警报。 presentModalViewController 撞车事故。

    mfmailcomposeviewController的 如果用户在3.0和4.0基本SDK中都没有邮件帐户,但在某个位置,则初始化返回nil。 当前模式视图控制器 在sdk 3.0的情况下智能地发出警报,但是部署在3.0上的sdk 4.0失败并崩溃。

    有人面对过这个问题吗/有人知道实际发生了什么吗?

    谢谢, 拉吉

    2 回复  |  直到 12 年前
        1
  •  7
  •   brentd49    14 年前

    我刚刚用iOS4做了一些测试,看到了你的帖子。我不明白为什么会是零,所以谢谢你的回答。对于你的问题的答案,你只需要检查它是否为零。如果为零,则不显示模态视图控制器。它仍将显示弹出窗口。

        2
  •  8
  •   karim    12 年前

    我在遇到同样的问题时发现了这个问题。

    我想是因为,如果电话里没有设置邮件帐户。这个 [[MFMailComposeViewController alloc] init] 返回零。

    所以在展示视图控制器之前,我们需要检查它是否为零。