【iOS-随笔】nil Nil NULL NSNull 之间的

2016-03-17  本文已影响100人  纪宝宝

【概述】


以前,对于他们的区别都是死记硬背的,这次写程序,遇了一个坑,后台返回一个字典里的字段

   zjjb = "<null>”

然后我这样取:

[[dict objectforkey:@"zjjb”] length]

结果报错:

CRASH: -[NSNull length]: unrecognized selector sent to instance

巨坑!后来找到了解决办法,就准备来总结下他们几个之间的差别

【差别总结】


概念

使用举例:

NSString * string= nil;
Class class = Nil;
int *pointerInt = NULL;
[[dict objectforkey:@"zjjb”] isEqualto: [NSNull null]] 

补充:

1.为什么上面的array里面的空对象不直接用nil?

[NSNull null]通常可以作为一个数组的占位符,从而是数组的count计算准确

2.为什么需要 NSNULL?

对于像NSArray这样的类型,nil或NULL不能做为加到其中的Object,如果定义了一个NSArray,为其分配了内存,又想设置其中的内容为空,则可以用[NSNULL null]返回的对象来初始化NSArray中的内容

3.NSNULL,NULL和nil在本质上应该是一样的,NULL和nil其实就是0

</br>
——————————— 【 MadeBy 纪宝宝 】 ———————————

上一篇下一篇

猜你喜欢

热点阅读