如何解决Swift 3 URLSession.shared() 对成员 'dataTask(with:completionHandler:) 错误错误的模糊引用
编译器被函数签名弄糊涂了。你可以像这样修复它:
let task = URLSession.shared.dataTask(with: request as URLRequest) {
但是,请注意,如果之前将“请求” 声明 为URLRequest
而不是: __URLRequest``NSMutableuRLRequest
var request = URLRequest(url:myUrl!)
NSMutableuRLRequest
这是失败的新事物之间的自动转换URLRequest
,迫使我们在这里进行这种转换。
解决方法
您好,我有用于 swift2.2 的 json 解析代码,但是当我将它用于 Swift 3.0 时,会出现该错误
ViewController.swift:132:31:对成员 ‘dataTask(with:completionHandler:)’ 的模糊引用
我的代码在这里
let listUrlString = "http://bla.com?batchSize=" + String(batchSize) + "&fromIndex=" + String(fromIndex)
let myUrl = URL(string: listUrlString);
let request = NSMutableURLRequest(url:myUrl!);
request.httpMethod = "GET";
let task = URLSession.shared().dataTask(with: request) {
data,response,error in
if error != nil {
print(error!.localizedDescription)
DispatchQueue.main.sync(execute: {
AWLoader.hide()
})
return
}
do {
let json = try JSONSerialization.jsonObject(with: data!,options: .mutableContainers) as? NSArray
if let parseJSON = json {
var items = self.categoryList
items.append(contentsOf: parseJSON as! [String])
if self.fromIndex < items.count {
self.categoryList = items
self.fromIndex = items.count
DispatchQueue.main.async(execute: {
self.categoriesTableView.reloadData()
AWLoader.hide()
})
}else if( self.fromIndex == items.count){
DispatchQueue.main.async(execute: {
AWLoader.hide()
})
}
}
} catch {
AWLoader.hide()
print(error)
}
}
task.resume()
感谢您的想法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。