小滿(bill man)個人原創,歡迎轉載,轉載請注明地址,小滿(bill man)的專欄地址http://blog.csdn.net/bill_man
之前提到過cocos2d-x的內存回收機制,但是不是很全面,這篇主要寫一下release和autorelease的區別,使用autorelease可以簡化我們的內存管理,等于將我們的對象放入自動釋放池,放入自動對象池的對象會記著你在晚些時候發送的釋放信息,因為忘記釋放內存有可能會導致內存泄露,當然這樣做也有一個缺點,就是當下一幀我們需要再次使用這個對象的時候,我們就會發現我們的對象已經被釋放了,就算你把對象作為成員變量,都無法保證不會出現這種錯誤,這時你有兩種辦法,第一種辦法就是使用retain方法保留,第二種辦法就是在addchild的時候,加上tag,然后再當我們需要的時候,我們就可以通過tag再次獲得相應的對象即可。
雖然蘋果開發者文檔建議較少的使用自動釋放對象,但是這樣做可以方便我們進行內存管理。
和oc一樣,cocos2d引擎對于內存管理有些約束,如果你擁有一些對象,你必須在用完之后釋放他,如果你使用了autorelease你就不能使用release
使用自動釋放的例子

使用釋放的例子

使用保留的例子

剛開始研究此引擎,如有錯誤之處,希望大家多多指正
下一篇寫一下test類里面的其他場景
- 前言
- (1)--HelloWorld
- (2)--重要概念及Test例子結構
- (3)--動作(CCAction)
- (4)--觸屏事件
- (5)--動作管理
- (6)--場景間切換效果
- (7)--CCProgressTimer
- (8)--場景特效
- (9)--粒子系統
- (10)--運動中的加速度效果
- (11)--拖動間隱效果
- (12)--圖形繪制
- (13)--內存回收機制
- (14)--菜單項
- (15)--CCOrbitCamera
- (16)--LayerColor
- (17)--瓦片地圖集
- (18)--Lable
- (19)--物理引擎box2d(1)
- (20)--物理引擎box2d(2)
- (21)--精靈類
- (22)--動畫類
- (23)--其他(屏幕旋轉,schedule,系統語言)
- (24)--音樂音效
- (25)--CCRenderTexture
- (26)--其他(游戲存檔,切換高清,圖片處理)
- (27)--CCMutableArray
- (28)--CCTMXTiledMap
- (29)-cocosBuilder
- (30)2.1新特性之CCClippingNode
- (31)2.1新特性CCPhysicsSprite
- (32)-cocos2d-x & javascript跨平臺初體驗