nil 用来给对象赋值
NULL 则给任何指针赋值 //NULL 和 nil 不能互换,nil 用于类指针赋值
NSNull 则用于集合操作
一般情况下最好使用用 nil (空对象值,有意义) [ nil 任意方法],不会导致崩溃
NULL 是一个通用指针(泛型指针,指向空指针)
NSNull,NULL 和 nil 在本质上应该是一样的,NULL 和 nil 本质就是 0
Objective-c中 NSArray 和 NSDictionary 中的 nil 表示列表结束,所以不能在集合中放入 nil 值。如果定义了一个NSArray 为其分配了内存,又想设置其中的内容为空,则可以用 [NSNull null ] 初始化 NSArray。
Object-C 的集合对象,如 NSArray、NSDictionary、NSSet 等,都有可能包含 NSNull 对象,如果集合中的对象为 NSNull,则会引起程序崩溃。
//判断对象不空
if(object) {}
//判断对象为空
if(object == nil) {}
//数组初始化,空值结束
NSArray *string=[[NSArray alloc] initWithObjects:@"1",@"2",@"3",nil];
//判断数组元素是否为空
if([NSArray objectAtIndex:i] == [NSNull null]){}
//判断字典对象的元素是否为空
if([NSDictionary objectForKey:@"keyName"] == [NSNull null]){}