nil
nil是指一个不存在的OC实例对象的指针,也就是OC实例对象的空指针
bash
NSObject *object = nil;
NSString *str = nil;
NSURL *url = nil;
id object1 = nil;
Nil
是指OC类对象的空指针
bash
Class Class1 = Nil;
Class Class2 = [NSURL class];
NULL
C语言指针类型的空值,也就是给除OC对象之外的指针赋空值
bash
int *intA = NULL;
char *charC = NULL;
NSNull
集合中表示空值的对象
我们知道数组与字典中是不能存储nil的,因此如果有空值需求的话我们要用NSNull来替代nil
bash
//错误写法:nil为数组结束标志,所以此时该数组的count=2,所以数组不能存储nil值。
NSArray *array = [[NSArray array]initWithObjects:@"1",@"2",nil,@"4", nil];
//正确写法:[NSNull null]通常可以作为数组的占位符。
NSArray *array = [[NSArray array]initWithObjects:@"1",@"2",[NSNull null],@"4", nil];
bash
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
//错误写法,会出现编译错误。
[dict setObject:nil forKey:@"key"];
//正确写法
[dict setObject:[NSNull null] forKey:@"key"];
总结
nil
:对象指针的空值。
Nil
:类指针的空值。
NULL
:C指针的空值。
NSNull
:集合中表示空值的对象。