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