Swift3.0-NSNull

  NSNull出场最多的时候是JSON解析。git

在OC中,NSDictionary和NSArray只能存储对象,因此对于JSON可能存在的null,映射的是NSNULL,而且OC没有强制类型检查,能够任意的向对象发送消息,这样若是json反序列化出的字典或者数组有null的时候,就会崩溃。例如返回的json 取age字段 integerValue实现拿到age数字。但当age是空的时候,给一个null发送消息,就会野指针崩溃。json

OC的解决办法通常是 每次发消息的时候都类型检查,确保不空。或者添加NSNull的分类,让它响应各类常见方法(integerValue)而且返回默认值。可是这两种方法都不太好。数组

  而在Swift中,由于强调类型安全。因此基本不会出现这种问题。安全

        if let string = json as? String {
            print("json")
        }else {
            print("解析失败")
        }

  这时打印结果必定是解析失败。框架

  不过Swift由于类型判断很严格,因此在类型转换的时候也很复杂。可能要取很深层次的节点要写无数个if let 和 as?强转才行。spa

  此时能够从git上下载SwiftyJSON框架,这但是拥有上万star的框架,完美的解决了冗余的写法,能够直接json[""][""][0][""]的方法游走于数组和字典中。大大的节约了时间。指针

相关文章
相关标签/搜索
本站公众号
   欢迎关注本站公众号,获取更多信息