OC中nil换棚、Nil式镐、NSNull和NULL的理解

nil

Defines the id of a null instance.定義空實(shí)例的id。

我們給對(duì)象賦值時(shí)一般會(huì)使用object = nil固蚤,表示我想把這個(gè)對(duì)象釋放掉娘汞;
或者對(duì)象由于某種原因,經(jīng)過(guò)多次release夕玩,于是對(duì)象引用計(jì)數(shù)器為0了你弦,系統(tǒng)將這塊內(nèi)存釋放掉,這個(gè)時(shí)候這個(gè)對(duì)象為nil燎孟,我稱它為“空對(duì)象”禽作。(注意:我這里強(qiáng)調(diào)的是“空對(duì)象”,下面我會(huì)拿它和“值為空的對(duì)象”作對(duì)比?场?醭ァ!)

所以對(duì)于這種空對(duì)象,所有關(guān)于retain的操作都會(huì)引起程序崩潰萍程,例如字典添加鍵值或數(shù)組添加新原素等幢妄,具體可參考如下代碼
截屏2020-03-1012.13.00.png

Nil

Defines the id of a null class.定義空類的id。

nil和Nil在使用上是沒(méi)有嚴(yán)格限定的尘喝,也就是說(shuō)凡是使用nil的地方都可以用Nil來(lái)代替磁浇,反之亦然斋陪。只不過(guò)從編程人員的規(guī)約中我們約定俗成地將nil表示一個(gè)空對(duì)象朽褪,Nil表示一個(gè)空類。參考代碼如下:
截屏2020-03-1012.15.27.png

NSNull

我們看一個(gè)NSNull的官方定義
Summary

A singleton object used to represent null values in collection objects that don’t allow nil values.
一個(gè)單例對(duì)象无虚,用于表示不允許空值的集合對(duì)象中的空值缔赠。

NSNull和nil的區(qū)別在于,nil是一個(gè)空對(duì)象友题,已經(jīng)完全從內(nèi)存中消失了嗤堰,而如果我們想表達(dá)“我們需要有這樣一個(gè)容器,但這個(gè)容器里什么也沒(méi)有”的觀念時(shí)度宦,我們就用到NSNull踢匣,我稱它為“值為空的對(duì)象”。如果你查閱開(kāi)發(fā)文檔你會(huì)發(fā)現(xiàn)NSNull這個(gè)類是繼承NSObject戈抄,并且只有一個(gè)“+ (NSNull *) null离唬;”類方法。這就說(shuō)明NSNull對(duì)象擁有一個(gè)有效的內(nèi)存地址划鸽,所以在程序中對(duì)它的任何引用都是不會(huì)導(dǎo)致程序崩潰的输莺。

參考代碼如下:
截屏2020-03-1012.14.18.png

NULL

NULL是無(wú)類型的,只是一個(gè)宏裸诽,它代表為空嫂用。用于c語(yǔ)言的各種數(shù)據(jù)類型的指針為空。
我們知道Object-C來(lái)源于C丈冬、支持于C,當(dāng)然也有別于C嘱函。而NULL就是典型C語(yǔ)言的語(yǔ)法,它表示一個(gè)空指針埂蕊,參考代碼如下:

int *ponit = NULL;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末往弓,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子粒梦,更是在濱河造成了極大的恐慌亮航,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,820評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件匀们,死亡現(xiàn)場(chǎng)離奇詭異缴淋,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)重抖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)露氮,“玉大人,你說(shuō)我怎么就攤上這事钟沛∨瞎妫” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,324評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵恨统,是天一觀的道長(zhǎng)叁扫。 經(jīng)常有香客問(wèn)我,道長(zhǎng)畜埋,這世上最難降的妖魔是什么莫绣? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,714評(píng)論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮悠鞍,結(jié)果婚禮上对室,老公的妹妹穿的比我還像新娘。我一直安慰自己咖祭,他們只是感情好掩宜,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,724評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著么翰,像睡著了一般牺汤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上硬鞍,一...
    開(kāi)封第一講書(shū)人閱讀 52,328評(píng)論 1 310
  • 那天慧瘤,我揣著相機(jī)與錄音,去河邊找鬼固该。 笑死锅减,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的伐坏。 我是一名探鬼主播怔匣,決...
    沈念sama閱讀 40,897評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼桦沉!你這毒婦竟也來(lái)了每瞒?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,804評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤纯露,失蹤者是張志新(化名)和其女友劉穎剿骨,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體埠褪,經(jīng)...
    沈念sama閱讀 46,345評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡浓利,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,431評(píng)論 3 340
  • 正文 我和宋清朗相戀三年挤庇,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片贷掖。...
    茶點(diǎn)故事閱讀 40,561評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡嫡秕,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出苹威,到底是詐尸還是另有隱情昆咽,我是刑警寧澤,帶...
    沈念sama閱讀 36,238評(píng)論 5 350
  • 正文 年R本政府宣布牙甫,位于F島的核電站掷酗,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏腹暖。R本人自食惡果不足惜汇在,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,928評(píng)論 3 334
  • 文/蒙蒙 一翰萨、第九天 我趴在偏房一處隱蔽的房頂上張望脏答。 院中可真熱鬧,春花似錦亩鬼、人聲如沸殖告。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,417評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)黄绩。三九已至,卻和暖如春玷过,著一層夾襖步出監(jiān)牢的瞬間爽丹,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,528評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工辛蚊, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留粤蝎,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,983評(píng)論 3 376
  • 正文 我出身青樓袋马,卻偏偏與公主長(zhǎng)得像初澎,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子虑凛,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,573評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容