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引发的崩溃