我已经让我的代码在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
由于
答案 0 :(得分:19)
如果你看一下swift 2中JSONObjectWithData
方法的定义,就会抛出错误。
class func JSONObjectWithData(data: NSData, options opt: NSJSONReadingOptions) throws -> AnyObject
在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
}
}
或者如果您不想要处理错误,可以使用try!
关键字强制它。
let jsonresult:NSDictionary = try! NSJSONSerialization.JSONObjectWithData(self.bytes, options: NSJSONReadingOptions.MutableContainers) as! NSDictionary
print(jsonresult)
与结束的其他关键字一样!这是一个危险的操作。如果出现错误,程序将崩溃。