在CoreData中,我们是否应该始终将NSSet转换为NSArray进行迭代?

时间:2012-12-04 16:53:40

标签: objective-c ios core-data

因此,在我的核心数据关系中,我有一个与通过NSSet映射的其他对象关系的对象。当我得到我的主要对象时,我想要迭代NSSet。只是迭代,没什么特别的。

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

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

谢谢!

1 个答案:

答案 0 :(得分:2)

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

但在任何一种情况下,即使有相当大的一组,我们也可能会说纳秒。除非您描述了实际的性能问题并且数据告诉您它存在问题,否则我真的不会担心它。

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