【发布时间】:2015-12-24 08:35:47
【问题描述】:
我已经写了这段代码:
func getjson() {
let urlPath = "https://api.whitehouse.gov/v1/petitions.json?limit=100"
let url = NSURL(string: urlPath)
let session = NSURLSession.sharedSession()
let task = session.dataTaskWithURL(url!, completionHandler: {data, response, error -> Void in
print("Task completed")
if(error != nil) {
print(error!.localizedDescription)
}
let err: NSError?
if let jsonResult = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers) as? NSDictionary {
if(err != nil) {
print("JSON Error \(err!.localizedDescription)")
}
if let results: NSArray = jsonResult["results"] as? NSArray {
dispatch_async(dispatch_get_main_queue(), {
self.tableData = results
self.Indextableview.reloadData()
})
}
}
})
task.resume()
}
更新到 XCode 7 后,它给了我这个错误:从 (_, _, _) 类型的抛出函数抛出的无效转换 -> Void 到非抛出函数类型 (NSData?, NSURLResponse?, NSError?) - > 无效。排队了,让任务在哪里。
谢谢
【问题讨论】:
-
指出导致问题的行并使用完整准确的错误消息更新您的问题。
-
但是我应该在哪里使用try? @LeoDabus
-
在尝试添加成功后应该运行的代码后进行尝试
-
我已经更新了完整的错误消息@rmaddy
-
尝试代码已在非 try-catch 块中使用。它发生在我身上。通过将
try xxx更改为try? xxx来修复它
标签: ios swift try-catch urlsession json-serialization