iOS開發(fā)nil、Nil、NULL、[NSNull null]的區(qū)別

一、nil

當(dāng)一個對象置為nil時,這個對象的內(nèi)存地址就會被系統(tǒng)收回。置空之后是不能進(jìn)行retain,copy等跟引用計數(shù)有關(guān)的任何操作的。

二、Nil

nil完全等同于Nil,只不過由于編程習(xí)慣,人們一般把對象置空用nil,把類置空用Nil。

三、NULL

這個是從C語言繼承來的,就是一個簡單的空指針

四、[NSNull null]

這個才是重點:[NSNull null]和nil的區(qū)別在于,nil是一個空對象,已經(jīng)完全從內(nèi)存中消失了,而如果我們想表達(dá)“我們需要有這樣一個容器,但這個容器里什么也沒有”的觀念時,我們就用到[NSNull null],它就是為“值為空的對象”。如果你查閱開發(fā)文檔你會發(fā)現(xiàn)NSNull這個類是繼承NSObject,并且只有一個“+ (NSNull *) null;”類方法。這就說明NSNull對象擁有一個有效的內(nèi)存地址,所以在程序中對它的任何引用都是不會導(dǎo)致程序崩潰的。

原文地址

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

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

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