Swift 2 jSON 调用可以抛出但是没有用try标记
Swift 2 jSON Call can throw but it is not marked with try
昨天我更新到 El Capitan beta 2 和 Xcode 7 - beta 是强制性的。所以我将我的应用程序更新为 Swift 2,新错误出现在 json 字符串中。这是我的代码:
let jsonData:NSDictionary = NSJSONSerialization.JSONObjectWithData(urlData!, options:NSJSONReadingOptions.MutableContainers ) as! NSDictionary
这是错误:Call can throw , but it is not marked with 'try' and the error is not handled
您需要将其包装在 do/catch
块中,因为这是报告错误的首选方式,而不是使用 NSError
:
do {
let jsonData = try NSJSONSerialization.JSONObjectWithData(urlData!, options:NSJSONReadingOptions.MutableContainers ) as! NSDictionary
// use jsonData
} catch {
// report error
}
var UserDict = NSJSONSerialization.JSONObjectWithData(responseData, options:nil, error: &error) as? NSDictionary
println("== \(UserDict)")
将 "try!" 项放在等号之后。
let jsonData:NSDictionary = try! NSJSONSerialization.JSONObjectWithData(urlData!, options:NSJSONReadingOptions.MutableContainers ) as! NSDictionary
那么不需要 catch 子句或 throws 声明。如果您无法真正从那里的故障中恢复,那么这样做是个好主意。
昨天我更新到 El Capitan beta 2 和 Xcode 7 - beta 是强制性的。所以我将我的应用程序更新为 Swift 2,新错误出现在 json 字符串中。这是我的代码:
let jsonData:NSDictionary = NSJSONSerialization.JSONObjectWithData(urlData!, options:NSJSONReadingOptions.MutableContainers ) as! NSDictionary
这是错误:Call can throw , but it is not marked with 'try' and the error is not handled
您需要将其包装在 do/catch
块中,因为这是报告错误的首选方式,而不是使用 NSError
:
do {
let jsonData = try NSJSONSerialization.JSONObjectWithData(urlData!, options:NSJSONReadingOptions.MutableContainers ) as! NSDictionary
// use jsonData
} catch {
// report error
}
var UserDict = NSJSONSerialization.JSONObjectWithData(responseData, options:nil, error: &error) as? NSDictionary
println("== \(UserDict)")
将 "try!" 项放在等号之后。
let jsonData:NSDictionary = try! NSJSONSerialization.JSONObjectWithData(urlData!, options:NSJSONReadingOptions.MutableContainers ) as! NSDictionary
那么不需要 catch 子句或 throws 声明。如果您无法真正从那里的故障中恢复,那么这样做是个好主意。