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