因此,在我的核心数据关系中,我有一个与通过NSSet映射的其他对象关系的对象。当我得到我的主要对象时,我想要迭代NSSet。只是迭代,没什么特别的。
现在,根据这篇文章,NSArray比NSSet快得多。 http://www.cocoawithlove.com/2008/08/nsarray-or-nsset-nsdictionary-or.html
我的NSSet永远不会那么大,所以在这种情况下我认为这不重要。但是,我只想知道一般来说,将NSSet转换为NSArray以进行迭代的开销总体上还是更快吗?
谢谢!
答案 0 :(得分:2)
将NSSet转换为NSArray将需要对集合进行迭代,并为数组分配内存,因此只要对集合进行迭代将会更快,除非您要重复迭代它。
但在任何一种情况下,即使有相当大的一组,我们也可能会说纳秒。除非您描述了实际的性能问题并且数据告诉您它存在问题,否则我真的不会担心它。
此外,您链接的性能数据仅适用于您自己创建的集合。当你从一个框架中获得一个集合时,它可以(并且在核心数据的情况下)返回一个具有自己的性能特征的自定义实现的集合。