Xcode Error对成员'dataTask(with:completionHandler :)'的模糊引用

Jac*_*ten 7 xcode swift3

我有一个swift 2.3项目我刚刚更新到swift 3.0并且以下代码中断了.

    let task = URLSession.shared.dataTask(with: request, completionHandler: {
        data, response, error in

        if error != nil {
            print("error=\(error)")
            return
        }

        print("response = \(response)")

        let responseString = NSString(data: data!, encoding: String.Encoding.utf8)
        print("responseString = \(responseString)")
    }) 
    task.resume()
Run Code Online (Sandbox Code Playgroud)

我不知道如何解决它

Rob*_*Rob 15

如果request是a NSURLRequest而不是a ,你可以得到那个错误URLRequest.

let url = URL(string: urlString)!
let request = URLRequest(url: url)

let task = URLSession.shared.dataTask(with: request) { data, response, error in
    guard let data = data, error == nil else {
        print("error=\(error)")
        return
    }

    print("response = \(response)")

    let responseString = String(data: data, encoding: .utf8)
    print("responseString = \(responseString)")
}
task.resume()
Run Code Online (Sandbox Code Playgroud)

或者,如果您正在改变URLRequest,请使用var:

let url = URL(string: urlString)!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.httpBody = ...

let task = URLSession.shared.dataTask(with: request) { data, response, error in
    guard let data = data, error == nil else {
        print("error=\(error)")
        return
    }

    print("response = \(response)")

    let responseString = String(data: data, encoding: .utf8)
    print("responseString = \(responseString)")
}
task.resume()
Run Code Online (Sandbox Code Playgroud)

另外,请注意,我已经替换NSStringString.


归档时间:

查看次数:

6662 次

最近记录:

9 年,6 月 前