iOS 空值 nil 、Nil、 NULL、 NSNull、 kCFNull

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í)的判定。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容