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

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值