2013-02-11 91 views
0

我正在开发一款应用程序,可在所有部署目标模拟器(5.0-6.1)以及我的iPhone 3GS,4,4S和第2代iPad上运行。今天我有机会尝试在iPad Mini上运行它。我工作到处都是,除非当我尝试继续使用MFMailComposeViewController对象发送电子邮件时,会导致电子邮件崩溃并发生异常。iPad迷你模式下的崩溃

我直接从MailComposer示例项目中使用代码,但当它调用presentModalViewController时它总是崩溃:animated :.所以我尝试了presentViewController:animated:completion:因为其他方法已被弃用,但它仍然不起作用。

我挂MessageUI.framework进口类:

#import <MessageUI/MessageUI.h> 
#import <MessageUI/MFMailComposeViewController.h> 

的委托设置。以下是代码:

-(void)displayComposerSheet 
{ 
    MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init]; 
    picker.mailComposeDelegate = self; 

    [picker setSubject:@"Contact Email"]; 

    // Set up recipient 
    NSArray *toRecipients = [NSArray arrayWithObject:@"[email protected]"]; 
    [picker setToRecipients:toRecipients]; 

    // [self presentModalViewController:picker animated:YES]; 
    [self presentViewController:picker animated:YES completion:NULL]; 
} 

在iPad Mini中可能会出现这种问题吗?我没有任何其他新设备可以试用,所以我不确定它是一个小问题还是更大的问题。任何帮助,将不胜感激,因为我准备提交给苹果公司,但我肯定不想这样做与崩溃的错误。

+0

我注意到问题似乎是,当我向该方法添加NSLog(@“picker%@”,picker)时,picker为NULL。所以由于某种原因,它没有正确地获得alloc/init'd。正如我所说,对于所有其他设备,它创建了对象并工作。 – Bob 2013-02-11 22:37:17

回答

1

邮件帐户可能尚未设置或由于其他原因无法发送电子邮件。

请务必首先调用MFMailComposeViewController的+ (BOOL)canSendMail函数。

1

尝试用

if ([MFMailCompseViewController canSendMail]) 

包裹你的MFMailComposeViewController代码我猜的设备上没有它邮件设置。