2016-09-15 2 views
-4

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

enter image description here

+3

Post le code réel, pas une image du code. Les gens veulent souvent reproduire votre code pour essayer de le résoudre – Takarii

Répondre

0

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:

SwiftyJSON

Gloss

-1

S'il vous plaît remplacer let object : AnyObject avec let object : Any.

Erreur lors de la projection en raison d'un mauvais moulage.