1.NULL
NULL是C语言中的空指针对象
char *c = NULL;
2.nil
nil 是Objective-C才会使用的,表示的OC对象的空字面量,对应的id类型的
NSString *someStr = nil;
NSNumber *someNum = nil;
NSArray *someArr = nil;
等....
3.Nil
Nil是Objective-C中类型的空字面量,对应的是Class类型
Class someCls = Nil;
Class arrCls = [NSArray class];
Class strCls = [NSString class];
4.NSNull
[NSNull null]表示一个对象实例,但是这个实例表示的是空。主要原因是在OC集合中,如果需要放置一个空对象实例,是不能用nil来做为存储的。所以此时,可以用[NSNull null]实例来操作。
**nil用来表示集合序列的结束。 **
[NSArray arrayWithObjects:@"one", @"two", nil];
正确的在集合加入空对象
NSMutableArray *arr = [NSMutableArray new];
NSNull *empty = [NSNull null];
[arr addObject:empty];
// [arr addObject:nil]; 这样是错误的