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 声明。如果您无法真正从那里的故障中恢复,那么这样做是个好主意。

有关详细信息,请参阅:https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/ErrorHandling.html