0

所以在我的核心数据关系中,我有一个与通过 NSSet 映射的其他对象有关系的对象。当我得到我的主要对象时,我会想要遍历 NSSet。只是迭代,没有什么花哨的。

现在,根据这篇文章,NSArray 比 NSSet 快得多。http://www.cocoawithlove.com/2008/08/nsarray-or-nsset-nsdictionary-or.html

我的 NSSet 永远不会那么大,所以我认为在这种情况下它并不重要。但是,我只是想知道一般来说,将 NSSet 转换为 NSArray 以进行迭代的开销总体上是否仍然更快?

谢谢!

4

1 回答 1

2

将 NSSet 转换为 NSArray 将需要对集合进行迭代,并为数组分配内存,因此除非您要反复迭代它,否则仅对集合进行迭代会更快。

但在任何一种情况下,即使有相当大的集合,我们也可能在谈论纳秒。我真的不会担心它,除非你已经描述了一个实际的性能问题并且数据告诉你它是一个问题。

此外,您链接的性能数据仅适用于您自己创建的集合。当您从框架中获取集合时,它可以(并且在核心数据的情况下,将)返回一个具有自定义实现的集合,该实现具有自己的性能特征。

于 2012-12-04T17:02:42.883 回答