【问题标题】:app crashes because of null values, swift 2由于空值,应用程序崩溃,swift 2
【发布时间】:2016-03-19 15:48:51
【问题描述】:

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

【问题讨论】:

    标签: crash swift2 ios9 do-catch


    【解决方案1】:
    let success = (jsonData["success"] as? NSInteger) ?? 0
    

    一步一步:

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

    【讨论】:

    • 感谢您的回答,但此行已被激活:if jsonData["error_message"] as? NSString != nil { error_msg = jsonData["error_message"] as! NSString } else { error_msg = "Unknown Error" }
    • @VahidGR 该行甚至没有出现在问题中。如果您有更多错误,请尝试先自己修复它们,然后再问另一个问题。不要忘记还包括您尝试解析的 JSON 数据。
    猜你喜欢
    • 2020-03-17
    • 1970-01-01
    • 2018-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-09
    • 2021-04-20
    • 2016-04-06
    相关资源
    最近更新 更多