Вчера я обновился до Xcode 8.2, который заставил меня обновиться до синтаксиса Swift 3.0. В моем приложении у меня есть эта функция:Проблемы с Swift3: не могу понять новый синтаксис
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()
}
И я получаю эту ошибку:
Cannot invoke 'dataTask' with an argument list of type '(with: NSMutableURLRequest, completionHandler: (Data?, URLResponse?, NSError?) -> Void)'
Пожалуйста, кто-то поможет мне исправить это?
Xcode 8.2 не заставляет вас обновлять до Swift 3.0, вы все равно можете использовать Swift 2.3. Но Xcode 8.3 заставит вас перейти на Swift 3.x. –