在我的OSX应用程序中,我有包含自定义对象的NSMutableSet。我在自定义对象类中实现了-isEqual和-hash方法,以便集合可以按照我想要的方式进行比较。
但是,每当我将一个新对象插入到我的set中然后调用-allObjects时,返回的数组都会按排序顺序排列对象。
顺序取决于我在上面提到的-isEqual方法中用于比较自定义对象的属性值。
在我的情况下,我想保留对象添加到集合的顺序。
有没有人知道如何实现这一目标?
非常感谢任何形式的帮助!
答案 0 :(得分:3)
设置没有订单,它们专门设计为无序集合。当您致电allObjects
获取数组时,您获得的顺序未定义,因此您不应该依赖它。
如果你想继续使用套装,你有2个基本选项。
获得数组后手动订购数组。
使用维持订单的NSOrderedSet
。
答案 1 :(得分:0)
在我的情况下,我想保留对象添加到集合的顺序。
然后不要使用一套,而是NSArray
数组按顺序存储它们的对象,不设置它们。