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

一、nil

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

二、Nil

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

三、NULL

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

四、[NSNull null]

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

原文地址

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

相關閱讀更多精彩內容

友情鏈接更多精彩內容