应用程序因空值而崩溃,swift 2

时间:2016-03-19 15:48:52

标签: crash swift2 ios9 do-catch

我尝试使用JSON广告获取数据时,存在空值会导致崩溃。

let jsonData:NSDictionary = try NSJSONSerialization.JSONObjectWithData(urlData!, options:NSJSONReadingOptions.MutableContainers ) as! NSDictionary

let success:NSInteger = jsonData.valueForKey("success") as! NSInteger
//code error bad instruction

NSLog("Success: %ld", success);

如何将null变为零?

1 个答案:

答案 0 :(得分:0)

let success = (jsonData["success"] as? NSInteger) ?? 0

一步一步:

  1. 获取值jsonData["success"](请不要使用valueForKey,它会做一些完全不同的事情)
  2. as? NSInteger - 尝试将其投放到NSInteger或返回nil,如果它不是数字(在这种情况下,它是NSNull实例)
  3. ?? 0 - 如果nil,请使用默认值零