nil、Nil、NULL、NSNull的區(qū)別

區(qū)別:

nil:指向一個(gè)對(duì)象的空指針
Nil:指向一個(gè)類的空指針
NULL:指向其它類型(基本類型、C類型)的空指針
NSNull:通常表示集合中的空值,如果定義了一個(gè)NSArray,為其分配了內(nèi)存,又想設(shè)置其中的內(nèi)容為空,則可以用[NSNULL null]返回的對(duì)象來(lái)初始化NSArray中的內(nèi)容

舉例:

NSURL *url = nil;
Class class = Nil;
int *pointerInt = NULL;
NSArray *array = [NSArray arrayWithObjects:[[NSObject alloc] init], [NSNull null], [[NSObject alloc] init], [[NSObject alloc] init], nil];

為什么上面的array里面的空對(duì)象不直接用nil?
如果用nil,就會(huì)變成NSArray *array = [NSArray arrayWithObjects:[[NSObject alloc] init], nil, [[NSObject alloc] init], [[NSObject alloc] init], nil];,那么數(shù)組到第二個(gè)位置就會(huì)結(jié)束。打印[array count]的話會(huì)顯示1而不是4
所以[NSNull null]通常可以作為一個(gè)數(shù)組的占位符,從而是數(shù)組的count計(jì)算準(zhǔn)確

最后編輯于
?著作權(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ù)。

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

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