2017-09-04 4 views
-5

J'essaye d'analyser les données JSON dans Swift 3. Quand j'essaye d'imprimer le problème entier.NSURLSession a été renommé en URLSession

C'est la sortie de la console de mon fichier JSON:

{ 
    "nameJt1": "01/07/1985", 
    "codeVideo1": "_NfijT6mt6A", 

    "nameJt2": "02/07/1985", 
    "codeVideo1": "XCabcwrxbNc", 

    "nameJt3": "03/07/1985", 
    "codeVideo3": "XCabcwrxbNc" 
} 

Ceci est mon code pour analyser le fichier:

import UIKit 

class ViewController: UIViewController { 
    @IBOutlet weak var Jt1Label: UILabel! 
    @IBOutlet weak var Jt2Label: UILabel! 
    @IBOutlet weak var Jt3Label: UILabel! 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     //1 
     let urlAsString = "http://tvlaayoune.ma/youtubeJT" 
     let url = NSURL(string: urlAsString)! 
     let urlSession = NSURLSession.sharedSession() 

     //2 
     let jsonQuery = urlSession.dataTaskWithURL(url, completionHandler: { data, response, error -> Void in 
      if (error != nil) { 
       println(error.localizedDescription) 
      } 
      var err: NSError? 

      // 3 
      var jsonJt = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: &err) as! NSDictionary 
      if (err != nil) { 
       println("JSON Error \(err!.localizedDescription)") 
      } 

      // 4 
      let nameJt1: String! = jsonJt["nameJt1"] as! String 
      let nameJt2: String! = jsonJt["nameJt2"] as! String 
      let nameJt3: String! = jsonJt["nameJt3"] as! String 

      let codeVideo: String! = jsonJt["codeVideo"] as! String 

      dispatch_async(dispatch_get_main_queue(), { 
       Jt1Label.text = nameJt1 
       Jt1Labe2.text = nameJt2 
       Jt1Labe3.text = nameJt3 

      }) 
     }) 
     // 5 
     jsonQuery.resume() 
    } 
} 

Je ne comprends pas quel est le problème. Quelqu'un peut-il me donner un coup de main? Merci d'avance.

C'est une capture d'écran montrant le code:

enter image description here

+0

Quelle est la question? Comment analyser votre JSON? Cela aiderait si vous nous disiez ce que vous attendiez. Qu'est-ce que le message d'erreur signifie ?, Il est juste là dans la description. Du // 1, // 2, // 3 jonché dans votre code je suspecte que vous avez collé dans un code que vous avez trouvé dans un tutoriel et essayé de l'adapter, mais vous n'avez toujours pas clairement énoncé une question. – Abizern

+0

Cliquez simplement sur l'icône rouge Xcode vous proposera un correctif. Et oui, le préfixe 'NS' est supprimé et maintenant il est juste URLSession –

Répondre

1

L'erreur n'est pas lié à votre structure de données JSON.

Si vous cliquez sur le cercle rouge dans la colonne de code, le correctif suggéré remplacera NSURLSession par URLSession. Vous pouvez également le faire manuellement.

Il existe de nombreuses ressources qui peuvent vous aider avec Swift et JSON, mais jetez un oeil à ce post - il couvre les deux sujets, et inclut du contenu sur le passage de NSURLSession ... à URLSession.

https://grokswift.com/updating-nsurlsession-to-swift-3-0/

+2

Yup. (Voté.) Xcode proposera probablement de faire le changement pour vous. À l'OP, notez que vous devriez utiliser les types natifs de Swift plutôt que les versions d'Objective-C, ainsi remplacer 'NSDictionary' par' Dictionary'. Vous pouvez même vouloir utiliser '[String: Any]' de sorte que vous puissiez récupérer des paires clé/valeur sans avoir à transformer la clé en 'String'. –