[Résolu] NSURLConnection.sendAsynchronousRequest : Deprecated

iLandesiLandes Membre
février 2017 modifié dans API UIKit #1

Bonjour,


 


J'essaie de mettre à  jour mon code qui utilise NSURLConnection (la partie OLD de mon code ci-dessous). Dans la partie NEW j'utilise sans succès URLSession. Le completion n'est jamais appelé, je ne vois pas le print dans dans la console :[


 


Je pédale dans la semoule depuis une heure. Merci de votre aide.


 


  



 // NEW
            if let url = URL(string: photoStringURL) {
                let request = URLRequest(url: url)
                let session = URLSession.shared
                session.dataTask(with: request, completionHandler: {
                    (data: Data?, response: URLResponse?, error: Error?) in
                    print ("DataTask", error, response)
                    if let _data = data {
                        self.photo = UIImage(data: _data)
                    }
                })
            }
            
            
            // OLD
            if let url = URL(string: photoStringURL) {
                let request = URLRequest(url: url)
                
                NSURLConnection.sendAsynchronousRequest(request,
                                                        queue: OperationQueue.main) {
                                                            (response: URLResponse?, data: Data?, error: Error?) -> Void in
                                                            if let _data = data {
                                                                self.photo = UIImage(data: _data)
                                                            }
                }
            }

ddd


 


Réponses

  • Tu n'aurais pas oublié un petit .resume() pour lancer la tâche ?


  • J'utilise en gros ce code :



    let config = URLSessionConfiguration.default
    let session = URLSession(configuration: config)


    let task = session.dataTask(with: urlRequest, completionHandler: { (data, response, error) in
    guard let responseData = data else {
    print("Error: did not receive data")
    return
    }
    guard error == nil else {
    print(error as Any)
    return
    }


    let post: NSDictionary
    do {
    post = try JSONSerialization.jsonObject(with: responseData,
    options: []) as! NSDictionary



    } catch {
    print("error trying to convert data to JSON")
    return
    }

    completion(...)

    })
    task.resume()
    })


  • Tu n'aurais pas oublié un petit .resume() pour lancer la tâche ?




    Bien résumé @Lexxis


     


    Merci beaucoup  o:)

Connectez-vous ou Inscrivez-vous pour répondre.