【发布时间】:2014-06-07 20:48:25
【问题描述】:
如何在 Swift 中检查 Optionals 的 nil 值?
我正在尝试评估解析 JSON 是否成功。这应该在传递无效 json 时打印一条错误消息,但由于 EXC_BAD_INSTRUCTION 失败。
func parseJson(data: NSData) {
var error: NSError?
var json: NSDictionary = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: &error) as NSDictionary
if let err = error {
println("error parsing json")
return
}
println("json parsed successfully")
}
尝试使用有效的 json 运行(工作正常):
parseJson(NSData(data: "{}".dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true)))
尝试使用无效的 json:
parseJson(NSData(data: "123".dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true)))
我是否错过了使用 Optionals 的要点?
【问题讨论】: