J'ai été converti en Swift 3 et j'ai reçu les erreurs suivantes lors de l'assignation à AnyObject de JSONSerialization.jsonObject. Quelqu'un at-il rencontré ce problème et connaissez-vous le correctif?JSONSerialization AnyObject SWIFT3 Problèmes de conversion
Répondre
Depuis la dernière Swift 3 mise à jour la plupart des types de retour changé AnyObject
-Any
et baissés n'est pas autorisé, donc dans une telle situation, vous êtes obligé d'utiliser transtypage explicite. Cela signifie que vous devez effectuer quelques instructions guard
ou utiliser le chaînage optionnel if let
pour définir chaque champ nécessaire. Pensez à utiliser map
, filter
, reduce
si possible pour rendre votre code plus élégant. Exemple:
guard
façon:
guard let object = try JSONSerialization.jsonObject(with: data) as? [[String: Any]] else { return nil }
guard let field1 = object[0]["field1_token"] as? [Any] else { return nil }
//do your thing
if let
façon:
if let object = try JSONSerialization.jsonObject(with: data) as? [[String: Any]],
let field1 = object[0]["field1_token"] as? [Any] {
//do your thing
}
Vous pouvez consulter l'article d'Apple Working with JSON in Swift
vous pouvez utiliser quelques-unes des parsing JSON/libriaries de cartographie comme ceux-ci:
S'il vous plaît remplacer let object : AnyObject
avec let object : Any
.
Erreur lors de la projection en raison d'un mauvais moulage.
Post le code réel, pas une image du code. Les gens veulent souvent reproduire votre code pour essayer de le résoudre – Takarii