Я попытался преобразовать код ниже на Swift 3:Получение ошибок для преобразования NSURLSession в URLSession в Swift 3
session.dataTaskWithURL(url! as URL, completionHandler: { (data : NSData?, response : URLResponse?, error : NSError?) -> Void in
if error != nil {
callback(items: nil, errorDescription: error!.localizedDescription, placesDetail: [])
}
if let statusCode = response as? NSHTTPURLResponse {
if statusCode.statusCode != 200 {
callback(items: nil, errorDescription: "Could not continue. HTTP Status Code was \(statusCode)", placesDetail: [])
}
}
NSOperationQueue.mainQueue().addOperationWithBlock({() -> Void in
callback(items: GooglePlaces.parseFromData(data!), errorDescription: nil, placesDetail: GooglePlaces.arrayPlaces(data!))
})
}).resume()
Так я это делаю:
session.dataTask(with: url!) { (data, response, error) -> Void in
if error != nil {
callback(items: nil, errorDescription: error!.localizedDescription, placesDetail: [])
}
if let statusCode = response as? NSHTTPURLResponse {
if statusCode.statusCode != 200 {
callback(items: nil, errorDescription: "Could not continue. HTTP Status Code was \(statusCode)", placesDetail: [])
}
}
OperationQueue.main.addOperation {
callback(items: GooglePlaces.parseFromData(data!), errorDescription: nil, placesDetail: GooglePlaces.arrayPlaces(data!))
}
}
Но эта ошибка:
Ambiguous reference to member 'dataTask(with:completionHandler:)'
Зачем нужна эта ошибка?
Вам нужно использовать URL вместо NSURL –