J'essaie de faire ce que dit le titre, mais quand j'appuie sur le bouton pour ouvrir le courrier, mon application se bloque lorsque je n'ai pas installé l'application de messagerie. pouvez-vous m'aider à régler cela?Si Mail est installé Fonctionne, sinon Ouvrir la page App Store
code:
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")!)
}
}
crash a réuni les journaux:
libc++abi.dylib: terminating with uncaught exception of type NSException
plantages en ligne: class AppDelegate: UIResponder, UIApplicationDelegate{
. Informations supplémentaires: Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Application tried to present a nil modal view controller on target
Quel est l'accident? Sur quelle ligne se plante-t-il? – Paulw11
désolé, aurait dû inclure cela. Son dicton: 'libC++ abi.dylib: se terminant par une exception non interceptée de type NSException' se bloque en ligne:' class AppDelegate: UIResponder, UIApplicationDelegate {'. Extra info: 'Terminaison de l'application due à une exception non interceptée 'NSInvalidArgumentException', raison: 'L'application a tenté de présenter un contrôleur de vue modal nul sur la cible' – RandomGeek
Il semble que tout ce que vous devez faire est de vérifier si' mc == nil' – Paulw11