39 votes

Tapez 'Tout' N'a pas de membre avec indice dans xcode 8 Swift 3

Mon Application est censée aller à un endroit précis pour tirer vers le bas le site, il doit charger. Dans le paragraphe 2.3, il a travaillé comme un charme, mais depuis que j'ai mis à jour xcode (que je n'ai pas une tonne d'expérience), il me donne le message d'erreur "type" Tout "n'a pas d'indice membres" et en soulignant le "json" juste avant la ligne de trois

...Retriever = json["WEB"]...

c'est le code lié à elle.

let json = try JSONSerialization.jsonObject(with: data!, options:.allowFragments)

      if let Retriever = json["WEB"] as? [[String: AnyObject]] {

                 for website in Retriever {

                    if let name = website["URL"] as? String {

                          self.loadAddressURL(name)

Je me sens comme je suis en manque un petit quelque chose. Si il ya une meilleure façon pour ce faire, j'aimerais des suggestions. L'URL de retour cette JSON

{
  "WEB" : [
           {
            "URL" : "http://www.google.com"
           }    
          ]
}

mais j'aimerais si je pouvais simplifier qu'il suffit d'

{"URL":"http://www.google.com"}

65voto

Bista Points 6574

Essayez ceci:

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

De façon sécuritaire:

do {
    if let json = try JSONSerialization.jsonObject(with: data!, options:.allowFragments) as? [String:Any] {
        print(json)
    }
} catch let err{
    print(err.localizedDescription)
}

Vous disposez de type moulé Any de Swift type de dictionnaire [String:AnyObject].

Edit: Swift 3
Dans swift 3 le but de l' AnyObject est plus précisé. Donc plus favorables Swift type de Dictionnaire sera [String:Any].

Any est un alias pour n'importe quel type de données.
AnyObject est un alias pour n'importe quel type de données dérivée d'une classe.

Pour plus d'informations, visitez: https://craiggrummitt.com/2016/09/16/any-vs-anyobject-vs-nsobject-in-swift-3/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X