最弱ポータル自作日誌

自作ポータルとか自作ニュースサイトをコツコツ作るプログラマの作業記録

メールアカウントが設定されていない場合、iOSでMFMailComposeViewControllerでメール作成画面を出すと落ちる問題。あるいは、そのAPIイケていない問題。

タイトル通りだけど、 iOSで設定でメールアカウントが設定されていない場合、MFMailComposeViewControllerを使って、メール作成画面を出すと落ちる。

解決策としては、 [MFMailComposeViewController canSendMail] でNOならメール設定がしていないから、MFMailComposeViewControllerを使わず、alertを表示する。つまり、場合分けが必要だ。

しかし、メール設定が無いからといって、MFMailComposeViewControllerを使うとアプリがクラッシュするのは、いかがなiOSAPI仕様か?初期化のときに、例外処理を必須にして、ちゃんとキャッチできるようにすれば良い気がする。例外を投げる(かもしれない)仕様にすれば、例外処理を強制必須にできる。

objective-Cでは例外処理ないんだっけ?なんかなかった気がする。 swiftは例外処理があるから、できる気がする。

そう考えると、このAPIいまいちイケていないと思う。

すいません、objective-cあまり知りませんで書いています。