遷移自開源中國
對于一個指向?qū)ο蟮淖兞考肭颍锩娲鎯Φ氖且粋€地址厚者,一個指向內(nèi)存中某塊區(qū)域的地址条辟。
nil:的作用就是將這個變量置為空冀偶,不指向任何地址鬓梅。
release:的作用是將這個變量指向的內(nèi)存中的對象的引用計數(shù)減一吞获,直到引用計數(shù)為零時釋放這塊內(nèi)存况凉。
所以,如果你只是做了nil操作各拷,那么就會引起內(nèi)存泄露的問題刁绒,因為它永遠也不會做release操作了。
如果你只是做了release操作烤黍,那么就有可能引起crash知市,原因就是只是release(我認為這個對象已經(jīng)被釋放)而沒有將變量置為空,當你再對這個變量做操作時就會引起問題速蕊,因為你在對一個不存在的對象做操作嫂丙。
所以建議,不再需要一個對象時规哲,除了要做release操作以外還要做nil操作跟啤。
NSString *str; 此時str指向當前對象。所以對它的操作要小心媳叨,建議:NSString *str = nil;