iOS 判斷NSArray和NSDictionary是否為空

一、判斷NSArray是否為空,需要對(duì)各種情況都進(jìn)行判斷:

if (array != nil && ![array isKindOfClass:[NSNull class]] && array.count != 0)

二、判斷NSDictionary是否為空

NSDictionary * dict = @{@"key1":@"1",@"key2":@"2"};

NSLog(@"%d",dict.count);

1、通過(guò)返回key-value對(duì)的個(gè)數(shù)

if( [dict count] ) {

? ? ? ?NSLog (@“dict不為空!”);

}

2、直接判斷是否為nil(字典里面嵌套字典:假如字典dict里面,存在key對(duì)應(yīng)的 value還是字典),如圖-1所示的結(jié)構(gòu):

圖-1

if( [dict objectForKey:@"data"] ) {

? ? ? NSLog (@“data不為空!”);

}


3. 判斷是否為NSNull。

if ( ! [ dict[@"data"] isEqual:[NSNull null] ] ) {

? ? NSLog (@“data不為NSNull !”);

}

或者

if ( ! [dict[@"data"] isKindOfClass:[NSNull class]] ) {

NSLog (@“data不為NSNull !”);

}

4. 關(guān)于nil、Nil、和NULL和NSNull的區(qū)別。

NSNull 是類(lèi)類(lèi)型,NSNull類(lèi)定義了一個(gè)單例對(duì)象用于表示集合對(duì)象的空值,是用于表示空的占位對(duì)象,與 JS 或者服務(wù)端的 null 類(lèi)似的含意。

NULL 是宏,是對(duì)于 C 語(yǔ)言指針而使用的,是典型C語(yǔ)言的語(yǔ)法,表示一個(gè)空指針,參考代碼如下:

int *ponit = NULL;

Nil 是宏,是對(duì)于 Objective-C 中的類(lèi)而使用的,表示類(lèi)指向空。

nil 是宏,是對(duì)于 Objective-C 中的對(duì)象而使用的,表示對(duì)象為空。

小結(jié):

NSNULL:NSNull只有一個(gè)方法:+ (NSNull *) null;

[NSNull null] 用來(lái)在NSArray和NSDictionary中加入非nil(表示列表結(jié)束)的空值.? [NSNull null]是一個(gè)對(duì)象,它用在不能使用nil的場(chǎng)合。

在NSArray和NSDictionary中nil中有特殊的含義(表示列表結(jié)束),所以不能在集合中放入nil值。如要確實(shí)需要存儲(chǔ)一個(gè)表示“什么都沒(méi)有”的值,可以使用NSNull類(lèi)。

nil和Nil在使用上是沒(méi)有嚴(yán)格限定的,也就是說(shuō)凡是使用nil的地方都可以用Nil來(lái)代替,反之亦然。只不過(guò)從編程人員的規(guī)約中我們約定俗成地將nil表示一個(gè)空對(duì)象,Nil表示一個(gè)空類(lèi)。

nil是一個(gè)對(duì)象指針為空,Nil是一個(gè)類(lèi)指針為空。

補(bǔ)充:

id類(lèi)型:是一個(gè)獨(dú)特的數(shù)據(jù)類(lèi)型,可以轉(zhuǎn)換為任何數(shù)據(jù)類(lèi)型,id類(lèi)型的變量可以存放任何數(shù)據(jù)類(lèi)型的對(duì)象,在內(nèi)部處理上,這種類(lèi)型被定義為指向?qū)ο蟮闹羔?,?shí)際上是一個(gè)指向這種對(duì)象的實(shí)例變量的指針

id聲明的對(duì)象具有運(yùn)行時(shí)特性,既可以指向任意類(lèi)型的對(duì)象

最后編輯于
?著作權(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)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

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