先簡單解釋一下nil和release的作用:
nil就是把一個(gè)對(duì)象的指針置為空箕戳,只是切斷了指針與內(nèi)存中對(duì)象的聯(lián)系肆饶;而release才是真正通知內(nèi)存釋放這個(gè)對(duì)象滥沫。所以nil并沒有釋放內(nèi)存,只有release才回真正釋放內(nèi)存。
再分析一下二者使用的先后順序:如果沒有release就直接nil暂筝,那么雖然不會(huì)出錯(cuò),卻等于自己制造內(nèi)存泄漏了硬贯,因?yàn)閚il之后release就已經(jīng)不起作用了焕襟。相反,如果在使用接口對(duì)象時(shí)只僅僅release沒有設(shè)置self.myOutlet =nil饭豹,那么程序可能也不會(huì)報(bào)錯(cuò)鸵赖,但卻會(huì)十分不穩(wěn)定、不健壯拄衰,很容易發(fā)生崩潰現(xiàn)象它褪。因?yàn)橐粋€(gè)接口對(duì)象在release之后,給它所分配等內(nèi)存就已經(jīng)被釋放了翘悉,如果釋放之后系統(tǒng)再用到這個(gè)對(duì)象茫打,那么程序就會(huì)crash。如果釋放之后把它的指針置為空妖混,則即便后面的程序用到該對(duì)象老赤,也不會(huì)崩潰。即先release后nil才正確
所以在使用nil和release的時(shí)候一定要慎重哦源葫!