IOS開發中nil與release

2021-06-06 07:32:05 字數 455 閱讀 5143

nil和release的作用:

nil就是把乙個物件的指標置為空,只是切斷了指標與記憶體中物件的聯絡;而release才是真正通知記憶體釋放這個物件。

所以nil並沒有釋放記憶體,只有release才回真正釋放記憶體。

二者使用的先後順序:

如果沒有release就直接nil,那麼雖然不會出錯,卻等於自己製造記憶體洩漏了,因為nil之後release就已經不起作用了。

相反,如果在使用介面物件時只僅僅release沒有設定self.myoutlet = nil,那麼程式可能也不會報錯,但卻會十分不穩定、不健壯,很容易發生崩潰現象。

因為乙個介面物件在release之後,給它所分配等記憶體就已經被釋放了,如果釋放之後系統再用到這個物件,那麼程式就會crash。

如果釋放之後把它的指標置為空,則即便後面的程式用到該物件,也不會崩潰。

iOS開發中nil和release的用法

先簡單解釋一下 nil 和 release 的作用 nil 就是把乙個物件的指標置為空,只是切斷了指標與記憶體中物件的聯絡 而 release 才是真正通知記憶體釋放這個物件。所以 nil 並沒有釋放記憶體,只有 release 才回真正釋放記憶體。再分析一下二者使用的先後順序 如果沒有 relea...

iOS中nil和release的區別

首先解釋一下nil和release的原理 nil 把指標置為nil,就是把這個指標的儲存值置為空,此時我們切斷了指標與記憶體中物件的聯絡,但是系統並不會 物件占用的 記憶體release 通知記憶體釋放這個物件 如果沒有release就直接nil,那麼雖然不會出錯,卻等於自己製造記憶體洩漏了,因為n...

IOS開發中(null)與的處理

不小心在開發過程中,得到了 null 以及的返回值,找了好長時間只找到了乙個關於的。由於要根據返回值進行判斷,做出必要反應,因此必須知道返回值所代表的具體字元,在得到 null 後利用isequal 和 null,null nil,nil比較後均得不到正確結果,弄得不知所措了,但是還是感覺像nil,...