-je vérifier si j'ai les données de l'utilisateur Facebook comme UserDefaults.standard.valuevérification pour une option UserDefaults.standard.value
if let facebookDetails:Dictionary = (UserDefaults.standard.value(forKey: "facebookDetails") as? [String:Any])! {
dump(facebookDetails)
let picture:Dictionary = (facebookDetails["picture"] as? [String:Any])!
let fb_pic_data:Dictionary = (picture["data"] as? [String:Any])!
let fb_pic_data_url:String = fb_pic_data["url"] as! String
if let checkedUrl = URL(string: fb_pic_data_url) {
profiler.contentMode = .scaleAspectFit
downloadImage(url: checkedUrl)
profiler.layer.borderWidth = 1
profiler.layer.masksToBounds = false
profiler.layer.borderColor = UIColor.black.cgColor
profiler.layer.cornerRadius = profiler.frame.height/2
profiler.clipsToBounds = true
}
}
Je reçois l'alerte suivante: expression non-option de type « [chaîne: Any] 'utilisé dans une vérification pour les options
et l'application se bloque si UserDefaults.standard.value (forKey: "facebookDetails") n'est pas défini.
Quelle est la bonne façon d'écrire ce conditionnel?
Merci
N'utilisez pas 'value (forKey:)' pour obtenir un objet 'UserDefaults'. Utilisez la méthode 'object (forKey:)' ou l'une des nombreuses méthodes spécifiques au type telles que dictionary (forKey:) 'ou' string (forKey:) ', etc. – rmaddy
et supprimez ce point d'exclamation à la fin de l'expression –