cocos2d-x初探学习笔记(13)--内存回收机制
小滿(bill man)個人原創(chuàng),歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明地址,小滿(bill man)的專欄地址http://blog.csdn.net/bill_man
之前提到過cocos2d-x的內(nèi)存回收機制,但是不是很全面,這篇主要寫一下release和autorelease的區(qū)別,使用autorelease可以簡化我們的內(nèi)存管理,等于將我們的對象放入自動釋放池,放入自動對象池的對象會記著你在晚些時候發(fā)送的釋放信息,因為忘記釋放內(nèi)存有可能會導(dǎo)致內(nèi)存泄露,當(dāng)然這樣做也有一個缺點,就是當(dāng)下一幀我們需要再次使用這個對象的時候,我們就會發(fā)現(xiàn)我們的對象已經(jīng)被釋放了,就算你把對象作為成員變量,都無法保證不會出現(xiàn)這種錯誤,這時你有兩種辦法,第一種辦法就是使用retain方法保留,第二種辦法就是在addchild的時候,加上tag,然后再當(dāng)我們需要的時候,我們就可以通過tag再次獲得相應(yīng)的對象即可。
雖然蘋果開發(fā)者文檔建議較少的使用自動釋放對象,但是這樣做可以方便我們進行內(nèi)存管理。
和oc一樣,cocos2d引擎對于內(nèi)存管理有些約束,如果你擁有一些對象,你必須在用完之后釋放他,如果你使用了autorelease你就不能使用release
使用自動釋放的例子
使用釋放的例子
使用保留的例子
剛開始研究此引擎,如有錯誤之處,希望大家多多指正
下一篇寫一下test類里面的其他場景
總結(jié)
以上是生活随笔為你收集整理的cocos2d-x初探学习笔记(13)--内存回收机制的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: cocos2d-x初探学习笔记(12)-
- 下一篇: cocos2d-x初探学习笔记(14)-