iOS開發中nil和release的用法

原文:http://hi.baidu.com/nowgame/blog/item/ea198e3d2bd9c61ebba16766.html


先簡單解釋一下nilrelease的作用:

nil就是把一個對象的指針置爲空,只是切斷了指針與內存中對象的聯繫;

release纔是真正通知內存釋放這個對象。所以nil並沒有釋放內存,只有release纔回真正釋放內存。

再分析一下二者使用的先後順序:

如果沒有release就直接nil,那麼雖然不會出錯,卻等於自己製造內存泄漏了,因爲nil之後release就已經不起作用了。相反,如果在使用接口對象時只僅僅release沒有設置self.myOutlet = 
nil
,那麼程序可能也不會報錯,但卻會十分不穩定、不健壯,很容易發生崩潰現象。

因爲一個接口對象在release之後,給它所分配等內存就已經被釋放了,如果釋放之後系統再用到這個對象,那麼程序就會crash

如果釋放之後把它的指針置爲空,則即便後面的程序用到該對象,也不會崩潰。

所以在使用nilrelease的時候一定要慎重哦!

發佈了8 篇原創文章 · 獲贊 0 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章