没有判断类型为NSNULL的情况会crash,下边是自己的一些后续研究
json是很常用的网络数据包格式,客户端和服务端之间经常使用json来传输数据。对于一些字典类型的数据,如果某项数据为空,则会传'<null>',使用JsonKit转换以后会生出相应的[NSNull null]对象,而这种对象对于iOS来说并不是十分安全的,例如约定好商品的某一项字段为string类型,结果JSON Kit转换为[NSNull null],这个时候如果不加判断就当做是NSString处理就会存在问题。所以对于这种数据类型直接转换为nil会更加安全,转换方法如下:
#define PASS_NULL_TO_NIL(instance) (([instance isKindOfClass:[NSNull class]]) ? nil : instance)
针对nil调用任何方法基本上都是安全的。
当然也可以每次都判断下,这就麻烦了,
data && ![data isKindOfClass:[NSNull class]] //data对象存在且 不是nsnull类型,这样在对其操作就安全了
有个疑问就是:
在model 终究不会crash,在字典中就容易出问题,求大神讲解