nil和release的做用:nil就是把一個對象的指針置爲空,只是切斷了指針與內存中對象的聯繫;而release纔是真正通知內存釋放這個對象,可是在IOS中其實也不會立馬釋放內存,而是將內存計數器剪去1,直到計數器變爲0,纔會釋放掉內存,因此release的目的是爲了釋放內存,而self.object = nil,是清空指針。因此nil並無釋放內存,只有release纔回真正釋放內存。兩者使用的前後順序:若是沒有release就直接nil,那麼雖然不會出錯,卻等於本身製造內存泄漏了,由於nil以後release就已經不起做用了。相反,若是在使用接口對象時只僅僅release沒有設置self.myOutlet = nil,那麼程序可能也不會報錯,但卻會十分不穩定、不健壯,很容易發生崩潰現象。由於一個接口對象在release以後,給它所分配等內存就已經被釋放了,若是釋放以後系統再用到這個對象,那麼程序就會crash。若是釋放以後把它的指針置爲空,則即使後面的程序用到該對象,也不會崩潰。linux
本篇文章來源於 Linux公社網站(www.linuxidc.com) 原文連接:http://www.linuxidc.com/Linux/2012-06/62035.htmapp
strong相似於retainide
weak相似於assign網站