2013-02-11 110 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代碼我猜的設備上沒有它郵件設置。