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]){}