sendAsynchronousRequest en desuso en iOS 9

Estoy tratando de cambiar mi código de Swift 1.2 a Swift 2.0, pero estoy teniendo algunos problemas con respecto a "sendAsynchronousRequest" porque siempre muestra una advertencia porque está en desuso. He intentado usar otra solución de esta publicación: No puedo invocar 'sendAsynchronousRequest' en Swift 2 con una list de arguments, pero todavía no funciona y estoy recibiendo la misma advertencia nuevamente.

¿Qué debo cambiar en mi código para resolver esta advertencia? La advertencia es la siguiente:

sendAsynchronousRequest estaba en desuso en iOS 9, use dataTaskWithRequest: completionHandler

Este es mi código:

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { // try to reuse cell let cell = collectionView.dequeueReusableCellWithReuseIdentifier(reuseIdentifier, forIndexPath: indexPath) as! MarcaCollectionViewCell // get the deal image let currentImage = marcas[indexPath.row].image let unwrappedImage = currentImage var image = self.imageCache[unwrappedImage] let imageUrl = NSURL(string: marcas[indexPath.row].image) // reset reused cell image to placeholder cell.marcaImageView.image = UIImage(named: "") // async image if image == nil { let request: NSURLRequest = NSURLRequest(URL: imageUrl!) NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue(), completionHandler: {(response: NSURLResponse?,data: NSData?,error: NSError?) -> Void in if error == nil { image = UIImage(data: data!) self.imageCache[unwrappedImage] = image dispatch_async(dispatch_get_main_queue(), { cell.marcaImageView.image = image }) } else { } }) } else { cell.marcaImageView.image = image } return cell } 

Como advierte la advertencia, NSURLConnection está muerta. Larga vida NSURLSession.

 let session = NSURLSession.shanetworkingSession() let urlString = "https://api.yoursecureapiservergoeshere.com/1/whatever" let url = NSURL(string: urlString) let request = NSURLRequest(URL: url!) let dataTask = session.dataTaskWithRequest(request) { (data:NSData?, response:NSURLResponse?, error:NSError?) -> Void in print("done, error: \(error)") } dataTask.resume() 

Use NSURLSession lugar como a continuación,

Para Objective-C

 NSURLSession *session = [NSURLSession shanetworkingSession]; [[session dataTaskWithURL:[NSURL URLWithString:"YOUR URL"] completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { // handle response }] resume]; 

Para Swift,

 var request = NSMutableURLRequest(URL: NSURL(string: "YOUR URL")) var session = NSURLSession.shanetworkingSession() request.HTTPMethod = "POST" var params = ["username":"username", "password":"password"] as Dictionary<String, String> var err: NSError? request.HTTPBody = NSJSONSerialization.dataWithJSONObject(params, options: nil, error: &err) request.addValue("application/json", forHTTPHeaderField: "Content-Type") request.addValue("application/json", forHTTPHeaderField: "Accept") var task = session.dataTaskWithRequest(request, completionHandler: {data, response, error -> Void in println("Response: \(response)")}) task.resume()