cocos2dx內存相關注意

cocos2dx中內存管理要注意的地方

1、工廠函數create中要注意使用autorelease,體現 誰取得誰釋放 的原則

 

2、如果是直接new出來的,add進入到別的node之後,注意release一次(因爲new時引用計數是1),這樣在父類進行release時剛好可以釋放掉

3、CCArray CCDictionary 實現了對CCObject的管理,使用之前記得數組本身要retain,否則數組會被幹掉;如果obj只在數組中被管理,obj被放入後記得release一下(因爲在放入數組時已經retain了一次)

 

初始化

    CCArray *tmpArray = CCArray::array();

    tmpArray->retain();// 因爲ccArray是autorelease的,所以這裏必須retain

 

增加元素

tmpArray>addObject(元素)

 

刪除

    tmpArray->removeAllObjects();

    tmpArray->release();

 

使用工廠方法返回的指針,需要自己首先retain一下,這樣就不會內存出問題

 

set指針時的注意

void someclass::setObj(CCObject obj)

{

  obj->retain();

 this->obj->release();

this->obj = obj;

}

 

注意一定是先retain後release,防止同一個obj引發的崩潰

 

 

發佈了62 篇原創文章 · 獲贊 3 · 訪問量 7220
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章