在不需要立即回收對(duì)象的情況下趴久,應(yīng)該使用autorelease。
與此相對(duì)俯在,如果需要立即釋放對(duì)象應(yīng)該使用release竟秫。
像作為返回值的對(duì)象這樣的,是需要被調(diào)用方調(diào)用的跷乐,所以在該對(duì)象生成完返回肥败,并在被調(diào)用之前這段時(shí)間內(nèi)是沒(méi)有人調(diào)用它的,但是不能釋放它愕提,所以在這種情況下它需要被autorelease馒稍。
再說(shuō)得通俗一點(diǎn)就是autorelease可以延遲釋放。
作者舉的例子是一個(gè)非常簡(jiǎn)單的方法浅侨,方法里面有個(gè)局部對(duì)象纽谒。我在想這個(gè)方法調(diào)用完以后不就被彈出調(diào)用棧了嘛,里面的局部變量不就自行銷毀了嗎如输。為啥作者說(shuō)會(huì)導(dǎo)致內(nèi)存泄漏呢鼓黔?
我想大概是因?yàn)镺bjective-C對(duì)象的實(shí)質(zhì)都是指針變量,它們都是在堆上分配的內(nèi)存不见,所以它不同于普通的棧里面的變量那樣會(huì)隨著調(diào)用棧中方法的彈出而被銷毀吧澳化。