Objective c &引用;NSSet allObjects“;这是随机排序吗?
我有以下代码:Objective c &引用;NSSet allObjects“;这是随机排序吗?,objective-c,ios,cocoa-touch,sorting,nsset,Objective C,Ios,Cocoa Touch,Sorting,Nsset,我有以下代码: self.temporaryImageArray = [(NSSet *)[[array objectAtIndex:0] images] allObjects] 数组保存我的CoreData模型中的带对象。它有一个名为“images”的属性NSSet 现在我使用这个temporaryImageArray通过时间戳来确定图像是否需要更新。我遇到了一些非常随意的行为,我现在的问题是: [NSSet allObjects]是否以无顺序随机返回集合中的对象 有没有办法防止这种情况发生
self.temporaryImageArray = [(NSSet *)[[array objectAtIndex:0] images] allObjects]
数组保存我的CoreData模型中的带
对象。它有一个名为“images”的属性NSSet
现在我使用这个temporaryImageArray
通过时间戳来确定图像是否需要更新。我遇到了一些非常随意的行为,我现在的问题是:
[NSSet allObjects]
是否以无顺序随机返回集合中的对象
有没有办法防止这种情况发生,或者让它按顺序退回?这将大大降低代码的复杂性。一个集合没有顺序。然而,在10.7(Lion)中,有一个类。这在iOS 4.0中不可用。
NSSet
是无序集合。它不知道其对象的“顺序”是什么。因此,当您调用-allObjects
时,它将无序返回它们
请注意,有关-allObjects
的文档说明:
包含集合成员的数组,如果集合没有成员,则为空数组未定义数组中对象的顺序。
(emphasis mine)现在iOS 5中提供了SensoredSet和NSMutableOrderedSet,让您随时了解最新情况 这是我的建议