gpt4 book ai didi

json - 不处理从这里抛出的 Swift 错误

转载 作者:搜寻专家 更新时间:2023-10-30 22:22:10 26 4
gpt4 key购买 nike

我的代码在 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

谢谢

最佳答案

如果您查看 swift 2 中 JSONObjectWithData 方法的定义,它会抛出错误。

class func JSONObjectWithData(data: NSData, options opt: NSJSONReadingOptions) throws -> AnyObject

在 swift 2 中,如果某个函数抛出错误,你必须使用 do-try-catch block 来处理它

这是它的工作原理

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)

与其他以 !这是一个冒险的操作。如果出现错误,您的程序将崩溃。

关于json - 不处理从这里抛出的 Swift 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30817107/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com