nil--表示实例对象为空 例如 NSString * string = nil;
NSArray * array = nil; 我们对于nil的调用 不会产生crash或者异常。例如,一个数组release了,但是没有nil,调用它或直接crash的,但是nil掉的话,就不会crash。
NULL --(只是一个值)可以用在c语言的各种指针上 char * aa = NULL;
int mm = NULL;
Nil --表示一个空类。 Class rootViewController = Nil;
NSNull -- 它是一个单例类,.h里面 + (NSNull *)null; 它定义了一个单例类对象用来表示集合对象里面的空值。例如我的目的是 一个字典里面包含两个键值,最后的键值的值为空。
1. NSNumber * num = [NSNumber numberWithInt:1];
NSDictionary * dic = [NSDictionary dictionaryWithObjectsAndKeys:num,@"1",nil,@"2", nil];打印dic 只剩下一个键值,{
1 = 1;
}
2. NSNumber * num = [NSNumber numberWithInt:1];
NSDictionary * dic = [NSDictionary
dictionaryWithObjectsAndKeys:num,@"1",NULL,@"2", nil];打印dic 只剩下一个键值,{
1 = 1;
}
3. NSNumber * num = [NSNumber numberWithInt:1];
NSDictionary * dic = [NSDictionary
dictionaryWithObjectsAndKeys:num,@"1",[NSNull null],@"2", nil];打印dic 只剩下一个键值,{
1 = 1;
2 = "<null>";
}
实例说明 要想保证两个键值的要求,只有[NSNull null] 可以做到,这就是[NSNull null]与nil NULL的区别。