J'ai créé une extension sur 'Dictionnaire' pour m'aider à analyser JSON. La méthode ci-dessous m'aide à faire ceci:
func toJSONString() -> String? {
if let dict = self as? AnyObject {
if let data = try? JSONSerialization.data(withJSONObject: dict, options: JSONSerialization.WritingOptions(rawValue: 0)) {
if let json = String(data: data, encoding: String.Encoding.utf8) {
return json
}
}
}
return nil
}
Le problème se produit sur cette ligne:
if let dict = self as? AnyObject {
Je reçois un avertissement disant "Expression non optionnelle de type 'AnyObject' utilisée dans une vérification d'option"
Comment puis-je résoudre ce problème?
Supprimez simplement la ligne qui provoque l'avertissement de votre code et transmettez self
tel quel à la fonction JSONSerialization
. Cela devrait fonctionner sans aucun problème:
extension Dictionary {
func toJSONString() -> String? {
if let data = try? JSONSerialization.data(withJSONObject: self, options: JSONSerialization.WritingOptions(rawValue: 0)) {
if let json = String(data: data, encoding: String.Encoding.utf8) {
return json
}
}
return nil
}
}
Vous déballez quelque chose qui a déjà été déballé. Jetez un oeil à ce stackoverflow post