nil、Nil、NULL、NSNULL

nil、Nil、NULL、NSNull的区别

nil:是对objective c id 对象赋空值
Nil:表示对类进行赋空值
NULL:对其他类型(如:基本类型、C类型)赋空值
NSNull:通常表示集合中的空值,空对象。

举例:

NSURL *url = nil;
Class class = Nil;
int *pointerInt = NULL;
NSArray *array = [NSArray arrayWithObjects:[[NSObject alloc] init], [NSNull null], [[NSObject alloc] init], [[NSObject alloc] init], nil];

为什么上面的array里面的空对象不直接用nil?
如果用nil,就会变成NSArray *array = [NSArray arrayWithObjects:[[NSObject alloc] init], nil, [[NSObject alloc] init], [[NSObject alloc] init], nil];,那么数组到第二个位置就会结束。打印[array count]的话会显示1而不是4
所以[NSNull null]通常可以作为一个数组的占位符,从而是数组的count计算准确

你可能感兴趣的:(nil、Nil、NULL、NSNULL)