2010-07-28 104 views

回答

17

正如其他人指出的,NSArray/NSMutableArray是你在找什么。

来自Java世界,你可能会发现可可的收藏产品感觉微不足道。实际上,功能相当广泛。 NSArray,NSDictionaryNSSet实际上是class clusters,这意味着公共API是一个“抽象”类。当您初始化其中一个集合时,您实际获得的是针对您提供的数据量身定制的具体实现。如果数据更改(例如,它的大小增大),这些实现也可以在运行时更改具体实现。由于Objective-C的动态运行时间比Java的静态类型(和安全)所允许的要大得多,这一切都是可能的。类集群策略因此隐藏了很多实现,例如在单个API后面的接口。

Cocoa框架在复合数据结构(即构建在“原始”数组,集合和字典之上的那些)方面有所限制。您可能会发现优秀的开源代码CHDataStructures填补了许多空白。

+0

我正在寻找与Julio相同的东西,并看到很多答案都是这样说的:“闭上你的眼睛并使用NS \ * Array ...”。但通常你确实想明确地使用链接列表,例如对于任何项目的恒定时间插入/删除(NS \ *阵列不保证这一点)。根据您已知的访问模式选择正确的数据结构对于性能至关重要。作为iOS开发的新手,我不明白为什么Cocoa似乎将程序员的这个决定拿走了? – 2015-10-15 23:58:00