
nil
修飾實(shí)例對(duì)象的空指針:
NSString * str = nil;
NSObject * obj = nil;
Nil
指向類的空指針
Class cls = Nil;
NULL
通用指針(泛型指針),定義其他類型(基本類型,C類型)的空指針
char *p=NULL;
NSNull
數(shù)組中元素的占位符,數(shù)據(jù)中的元素不能為nil(可以為空,也就是NSNull),
原因:nil是數(shù)組的結(jié)束標(biāo)志,如果nil,就會(huì)變成
NSArray *array=[NSArray arrayWithObjects:
[[NSObject alloc]init],
nil,
[[NSObject alloc]init],
[[NSObject alloc]init],
nil
];
那么數(shù)組倒數(shù)第二個(gè)位置就會(huì)結(jié)束,打印[array count]的就會(huì)顯示1而不是5,即類似于在C中,字符串碰到 '\0' 就會(huì)結(jié)束一樣。OC中數(shù)組遇見nil即標(biāo)志著數(shù)組的結(jié)束。所以要用到NSNull占位符。
kCFNull
NSNull的單例。
NSNull *null1 = (id)kCFNull;
NSNull *null2 = [NSNull null];
使用:判定入?yún)⑹欠駷榭眨缭赮YModel中:
if (!dictionary || dictionary == (id)kCFNull) return nil;
這樣寫,避免了在嵌套類型中,比如說數(shù)組中,元素都是字典類型,字典類型為空時(shí)的判定。