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引發的崩潰