【发布时间】:2017-05-01 03:46:26
【问题描述】:
昨天我更新到 Xcode 8.2,这迫使我更新到 Swift 3.0 语法。在我的应用中,我有这个功能:
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()
}
我得到了这个错误:
无法使用类型为“(带有:NSMutableURLRequest,completionHandler:(Data?,URLResponse?,NSError?)-> Void)”类型的参数列表调用“dataTask”
请问有人可以帮我改正吗?
【问题讨论】:
-
Xcode 8.2 不会强制你更新到 Swift 3.0,你仍然可以使用 Swift 2.3。但是 Xcode 8.3 会强制你迁移到 Swift 3.x。
标签: xcode swift3 ios10 nsurlsessiondatatask xcode8.2