URLSession.shared.dataTask 个问题

URLSession.shared.dataTask issues

因此在 Swift 3 中创建引用 dataTaskURLSession 时遇到了一些问题。我收到此错误并且不明白为什么:

Ambiguous reference to member 'dataTask(with:completionHandler:)'

func fetchVideos() {

    let url = NSURL(string: "https://s3-us-west-2.amazonaws.com/youtubeassets/home.json")
    URLSession.shared.dataTask(with: url!) { (data, response, error) in

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

        let str = NSString(data: data!, encoding: NSUTF8StringEncoding)
        print(str)

    // this resume function is not reading correctly either
    }.resume()

}

在 Swift 3 中,当有原生 Swift 类型可用时,您不应使用 NS 前缀类型。例如,使用 URL 而不是 NSURL,使用 String 而不是 Objective-C 的 NSString。一般尽量用Swift-Foundation

let url = URL(string: "https://s3-us-west-2.amazonaws.com/youtubeassets/home.json")
URLSession.shared.dataTask(with: url!) { (data, response, error) in

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

    let str = String(data: data!, encoding: .utf8)
    print(str)

}.resume()