我正在尝试探索这种新的(对我而言)语言,我正在创建一个类似于许多其他人从服务器检索一些json数据的应用程序。 在这个函数中(从我发现的教程)我得到4个错误,我无法解决它:
func json_parseData(data: NSData) -> NSDictionary? {
do {
let json: AnyObject = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers)
print("[JSON] OK!")
return (json as? NSDictionary)
}catch _ {
print("[ERROR] An error has happened with parsing of json data")
return nil
}
}
第一个是“尝试”,xcode建议我使用“try”修复它 “抓住”中的其他人就是其他人:
请帮助我理解
答案 0 :(得分:0)
您似乎正在使用Xcode 6.x和Swift 1.x,其中do-try-catch
语法不可用(仅限Xcode 7和Swift 2)
此代码具有等效行为:
func json_parseData(data: NSData) -> NSDictionary? {
var error: NSError?
// passing the error as inout parameter
// so it can be mutated inside the function (like a pointer reference)
let json: AnyObject? = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainerserror: &error)
if error == nil {
print("[JSON] OK!")
return (json as? NSDictionary)
}
print("[ERROR] An error has happened with parsing of json data")
return nil
}
注意:从Xcode 7 beta 6开始,如果发生错误,您还可以使用try?
返回nil
。