我是 swift 的新手..任何人都可以帮助我理解为什么会抛出这个错误
Constant 'parsedResult' used before being initialized
另一方面,如果我在 catch
中设置了 return
,那么编译错误就消失了。它们之间的关系是什么。请解释。
这是我的代码:
if let data = data {
let parsedResult : AnyObject!
do {
parsedResult = try NSJSONSerialization.JSONObjectWithData(data, options: .AllowFragments)
}
catch{
print("something worng ")
// return
}
// error compiler error this line
print(parsedResult)
}
最佳答案
这很容易通过将 parseResult 声明为 AnyObject 来解决?这意味着它将被初始化为零。 print 将打印一个可选值,它可以很好地完成。
请注意您使用的词语。 “//error throwing this line”完全是误导。此行没有抛出错误。在运行时抛出错误。您让编译器在此行报告错误。要精确。
关于swift - 初始化前使用的常量 'XXX',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40050610/