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

app crashes because of null values, swift 2

我正在尝试使用 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 变为零?

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

一步一步:

  1. 获取值 jsonData["success"](请不要使用 valueForKey,它的作用完全不同)
  2. as? NSInteger - 尝试将其转换为 NSInteger 或 return nil 如果它不是数字(在这种情况下,它是一个 NSNull 实例)
  3. ?? 0 - 如果 nil,使用默认值零