Nat*_*fer 5 error-handling json swift xcode7
我已经让我的代码在Xcode 6中工作但是因为我得到了Xcode 7,我无法弄清楚如何解决这个问题.let jsonresult行有一个错误,表示从此处抛出的错误未被处理.代码如下:
func connectionDidFinishLoading(connection: NSURLConnection!) {
let jsonresult:NSDictionary = try NSJSONSerialization.JSONObjectWithData(self.bytes, options: NSJSONReadingOptions.MutableContainers) as! NSDictionary
print(jsonresult)
let number:Int = jsonresult["count"] as! Int
print(number)
numberElements = number
let results: NSDictionary = jsonresult["results"] as! NSDictionary
let collection1: NSArray = results["collection1"] as! NSArray
Run Code Online (Sandbox Code Playgroud)
谢谢
mus*_*afa 20
如果你看一下JSONObjectWithDataswift 2 中方法的定义,就会抛出错误.
class func JSONObjectWithData(data: NSData, options opt: NSJSONReadingOptions) throws -> AnyObject
Run Code Online (Sandbox Code Playgroud)
在swift 2中,如果某个函数抛出错误,则必须使用do-try-catch块来处理它
下面是它的工作原理
func connectionDidFinishLoading(connection: NSURLConnection!) {
do {
let jsonresult:NSDictionary = try NSJSONSerialization.JSONObjectWithData(self.bytes, options: NSJSONReadingOptions.MutableContainers) as! NSDictionary
print(jsonresult)
let number:Int = jsonresult["count"] as! Int
print(number)
numberElements = number
let results: NSDictionary = jsonresult["results"] as! NSDictionary
let collection1: NSArray = results["collection1"] as! NSArray
} catch {
// handle error
}
}
Run Code Online (Sandbox Code Playgroud)
或者,如果您不想要处理错误,可以使用try!关键字强制它.
let jsonresult:NSDictionary = try! NSJSONSerialization.JSONObjectWithData(self.bytes, options: NSJSONReadingOptions.MutableContainers) as! NSDictionary
print(jsonresult)
Run Code Online (Sandbox Code Playgroud)
与结束的其他关键字一样!这是一个危险的操作.如果出现错误,您的程序将崩溃.
| 归档时间: |
|
| 查看次数: |
7909 次 |
| 最近记录: |