さまざまなBaseSDK用にビルドすると、このコードに問題が発生します。
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 SDK4.0でビルドして3.0OSにデプロイすると、ユーザーがメールアカウントを持っていない場合、同じアラートがシステムに表示されず、代わりにpresentModalViewController
クラッシュします。
MFMailComposeViewController's
ユーザーが3.0と4.0の両方のベースSDKにメールアカウントを持っていない場合、初期化はnilを返しますがpresentModalViewController
、SDK 3.0の場合はどこかでインテリジェントにアラートを出しますが、3.0にデプロイされたSDK4.0は失敗してクラッシュします。
誰かがこの問題に直面したことがありますか/実際に何が起こっているのか考えていますか。
ありがとう、ラジ