Hier, j'ai mis à jour à Xcode 8.2 qui m'a forcé à mettre à jour à la syntaxe Swift 3.0. Dans mon application, j'ai cette fonction:Problèmes avec Swift3: ne peut pas comprendre la nouvelle syntaxe
func performGetRequest(_ targetURL: URL!, completion:@escaping (_ data: Data?, _ HTTPStatusCode: Int, _ error: NSError?) -> Void)
{
let request = NSMutableURLRequest(url: targetURL)
request.httpMethod = "GET"
let sessionConfiguration = URLSessionConfiguration.default
let Session = URLSession(configuration: sessionConfiguration)
let tasksession = Session.dataTask(with: request, completionHandler: { (data: Data?, response: URLResponse?, error: NSError?) -> Void in
if data != nil{
DispatchQueue.main.async(execute: {() -> Void in
completion(data: data, HTTPStatusCode: (response as! HTTPURLResponse).statusCode, error: error)})
}
else
{
print("Connection Lost")
}
})
tasksession.resume()
}
Et je reçois cette erreur:
Cannot invoke 'dataTask' with an argument list of type '(with: NSMutableURLRequest, completionHandler: (Data?, URLResponse?, NSError?) -> Void)'
S'il vous plaît, que quelqu'un me aider à corriger?
Xcode 8.2 ne vous force pas à mettre à jour vers Swift 3.0, vous pouvez toujours utiliser Swift 2.3. Mais Xcode 8.3 vous forcera à passer à Swift 3.x. –