gpt4 book ai didi

objective-c - NSArray 和 CCArray 的区别

转载 作者:太空狗 更新时间:2023-10-30 03:21:38 25 4
gpt4 key购买 nike

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

最佳答案

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

最重要的性能关键方面是顺序读取数组。在 my latest tests这是 CCArray(不再?)擅长的领域。特别是快速枚举:NSMutableArray 快了大约 33 倍!

CCArray 是一个很好的例子,为什么人们不应该重新发明轮子,特别是当涉及到存储类时,已经有一个稳定、经过验证和快速的解决方案可用 (NSMutableArray)。它曾经拥有的任何速度优势早已不复存在。剩下的是您不想处理的运行时行为,包括一些极其糟糕的性能特征(插入、快速枚举)。

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

NSMutableArray 是每个人都应该使用的数组引用实现,因为它经过了非常好的测试、记录和稳定(无论是在运行时行为还是速度方面)。

关于objective-c - NSArray 和 CCArray 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15919045/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com