0

すべての展開ターゲット シミュレーター (5.0-6.1) と、iPhone 3GS、4、4S、および第 2 世代の iPad で動作するアプリを開発しています。今日、iPad Mini で実行してみる機会がありました。電子メールを送信するために MFMailComposeViewController オブジェクトにセグエしようとするときを除いて、どこでも動作します。これにより例外が発生してクラッシュします。

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:@"info@foo.bar"];
    [picker setToRecipients:toRecipients];

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

iPad Mini でこれを引き起こすバグがあるのでしょうか? 他に試せる新しいデバイスがないので、Mini の問題なのか、もっと大きな問題なのかわかりません。Appleに提出する準備ができているので、助けていただければ幸いですが、クラッシュするバグでそれをしたくありません.

4

2 に答える 2

1

MFMailComposeViewController コードをラップしてみてください

if ( [MFMailCompseViewController canSendMail])

デバイスにメールが設定されていないと思います。

于 2013-02-11T22:27:37.070 に答える
1

メール アカウントが設定されていないか、何らかの理由でメールを送信できない可能性があります。

+ (BOOL)canSendMail必ず最初に MFMailComposeViewControllerの関数を呼び出してください。

于 2013-02-11T22:27:56.550 に答える