私はタイトルに記載されていることをしようとしていますが、メールアプリケーションをインストールしていないときに私のアプリケーションがクラッシュします。これを整理する手助けはできますか?Mailがインストールされている場合Do関数がない場合はOpen app storeページ
コード:ライン上の
libc++abi.dylib: terminating with uncaught exception of type NSException
クラッシュ:class AppDelegate: UIResponder, UIApplicationDelegate{
if UIApplication.shared.canOpenURL(URL(string: "mailto://")!) {
// Mail is installed. Launch Mail and start function:
let toRecipients = ["[email protected]"]
let mc: MFMailComposeViewController = MFMailComposeViewController()
mc.mailComposeDelegate = self
mc.setToRecipients(toRecipients)
mc.setSubject("Why does it crash?")
mc.setMessageBody("שם הבר: \(CrashNameField.text!) \n\nעיר: \(CrashReasonNameField.text!)", isHTML: false)
self.present(mc, animated: true, completion: nil)
}else {
// Mail is not installed. Launch AppStore to install Mail app
UIApplication.shared.openURL(URL(string: "https://itunes.apple.com/gb/app/mail/id1108187098?mt=8")!)
}
}
この方法を試してみてください?どのラインがクラッシュするのですか? – Paulw11
申し訳ありませんが、 'libC++ abi.dylib:NSException型のキャッチされていない例外で終了すると、' class AppDelegate:UIResponder、UIApplicationDelegate {'がクラッシュします。追加情報: 'キャッチされていない例外のためにアプリケーションを終了させる 'NSInvalidArgumentException'、理由: 'アプリケーションがターゲット上にnilモーダルビューコントローラを表示しようとしたとき' – RandomGeek
' mc == nil'を確認するだけです。 – Paulw11