web-dev-qa-db-fra.com

Swift 3.0: données vers JSON [chaîne: n'importe laquelle]

Le soir, j'essaye de créer un APIClient, mais j'ai un problème avec un avertissement: APIClient.Swift:53:81: Cast from 'Data' to unrelated type '[String : Any]' always fails

Dans ce code, j'essaie de convertir Data en JSON en tant que dictionnaire [String : Any].

Je suppose que le compilateur ne peut pas savoir si cette distribution pourrait ou ne pourrait pas être possible, donc elle renvoie l'erreur, mais je suis presque sûr que cela fonctionnera. Alors, comment puis-je éviter cet avertissement ou comment puis-je écrire du code plus sûr?

case 200:
         do {
            let json = try JSONSerialization.data(withJSONObject: data!, options: []) as? [String : Any]
            completion(json, HTTPResponse, nil)
         } catch let error {
             completion(nil, HTTPResponse, error)
         }
11
Miotz

La bonne méthode est:

let json = try JSONSerialization.jsonObject(with: data!, options: []) as? [String : Any]

Merci à Eric Aya

34
Miotz