Objective c NSArray和CCArray之间的差异

Objective c NSArray和CCArray之间的差异,objective-c,cocos2d-iphone,nsarray,Objective C,Cocos2d Iphone,Nsarray,NSArray和CCArray之间有什么区别?另外,在什么情况下,在游戏编程方面,一个会比另一个更受欢迎?检查一下 希望这有帮助 享受编程乐趣 在cocos2d-x中,CCArray是可变的,即您可以向其添加元素。要创建没有容量的CCArray实例,可以使用CCArray::array()构造函数。CCMutableArray是基于模板的容器,可以存储相同类型的对象。CCArray将对象存储为CCObject实例,因此您必须在从CCArray实例获取对象后强制转换它们 NSArray类包含许

NSArray和CCArray之间有什么区别?另外,在什么情况下,在游戏编程方面,一个会比另一个更受欢迎?

检查一下

希望这有帮助
享受编程乐趣

在cocos2d-x中,CCArray是可变的,即您可以向其添加元素。要创建没有容量的CCArray实例,可以使用CCArray::array()构造函数。CCMutableArray是基于模板的容器,可以存储相同类型的对象。CCArray将对象存储为CCObject实例,因此您必须在从CCArray实例获取对象后强制转换它们


NSArray类包含许多方法,这些方法专门用于简化Objective-C程序中数组的创建和操作。

CCArray模拟NSMutableArray。它是围绕C数组(内存缓冲区)的包装器。它是由cocos2d开发并在内部使用的,因为NSMutableArray被认为太慢了。然而,性能的改进是最小的。cocos2d本身没有使用的CCArray的任何用例(特性)仍然是问题的潜在来源,包括奇怪且难以调试的问题或糟糕的性能特征

最重要的性能关键方面是按顺序读取阵列。在这一领域,CCArray(不再?)表现出色。特别是快速枚举:NSMutableArray大约快33倍

CCArray是一个很好的例子,说明人们不应该重新发明轮子,特别是在存储类方面,因为已经有了一个稳定、经验证且快速的解决方案(NSMutableArray)。它曾经拥有的任何速度优势早已消失。剩下的是您不想处理的运行时行为,包括一些非常糟糕的性能特征(插入、快速枚举)

长话短说:不要在自己的代码中使用CCArray将CCArray视为内部私有类,不在用户代码中使用(除非不可避免,即子数组)

NSMutableArray是每个人都应该使用的阵列参考实现,因为它经过了非常好的测试、记录并且非常稳定(无论是在运行时行为还是速度方面)