我们都知道nil是代表了对象为空,Nil代表类为空,NULL是其他类型的值为空(比如C语言类型)。很多博客和资料上说NSNull代表了在集合对象中表示空值的对象。
这句话又是什么意思?难道集合对象中的值为空不也就是nil吗?为什么官方还会做出来NSNull这个类型。
在OC中只要定义了两种容器,NSDictionory和NSArray,而且要求这两种容器中的对象都不能为空,也就不能位nil,为了保证count的正确性。但是集合中一定是会存在元素为空这一情况,就在nil指针的位置存放了NSNull对象,用来表示空对象。
带来的问题:
在遍历的时候如果集合中有空元素,这样会给程序带来crash。kvo的使用也会带来NSNull。