URLSession.shared.dataTask 个问题
URLSession.shared.dataTask issues
因此在 Swift 3 中创建引用 dataTask
的 URLSession
时遇到了一些问题。我收到此错误并且不明白为什么:
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()
因此在 Swift 3 中创建引用 dataTask
的 URLSession
时遇到了一些问题。我收到此错误并且不明白为什么:
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()