Cocos2dx中的CCArray的注意点

本文由qinning199原创,转载请注明:http://www.cocos2dx.net/?p=161

介绍

CCArray 是cocos2dx中充分支持的类。它被用来优化游戏。你可以在cocos2d/Support中找到这个类。

它和苹果的NSMutableArr类相似,但是CCArray的表现力更好一些。

注意:CCArray和CCDictionary类被用来保存cocox2dx的类,然而他们并没有和STL一样强大。因此,没有必要使用CCArray或者CCDictionary来替代你的项目中的一些STL。

CCArray仅仅提供对象包装类的功能

CCArray继承自CCObject类(CCObject的主要目的是自动的回收内存),并且提供一系列接口。

注意点一:

CCArray中有一个remove方法和一个fastRemove方法,看一下源代码可知,remove是一个完全的移除操作,而faseRemove仅仅将当前元素release了,主要的区别点在于向前移动了这个元素之后的元素之后,没有显式的删除元素。代码如下:

unsigned int remaining = arr->num - index;
if(remaining>0)
{
    memmove((void *)&arr->arr[index], (void *)&arr->arr[index+1], remaining * sizeof(CCObject*));
}


faseRemoveObject是快速的,但是它也意味着在CCArray中的对象将会改变位置,那么如果你使用CCArray的排序信息,你不应该使用faseRemoveObject方法。

注意点二:

CCArray初始它的引用计数为1,并且被设置为了autorelease。因此创建CCArray的时候你需要去retain,并且在析构函数中你需要手动的release内存。否则使用过程中可能CCArray已经释放造成错误。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值