我有一个Route作为我的顶级核心数据实体。然后路线有位置。地点有一个
@property (nonatomic, retain) NSNumber *index;
我需要索引,因为我需要确保用户的路由是有序的。我想知道如何才能最好地对Locations实体进行排序。在我的tableView中,我显示了Route的名称。然后,当用户点击路线时,我会显示位置。我看到NSSet已经
了sortedArrayUsingDescriptors
但我不知道如何使用sortDescriptor对NSNumber进行排序。我见过人们只使用像
这样的代码sortedArrayUsingSelector:@selector(compare:) // or something like that
我可以编写一个简单的方便方法来迭代NSSet并通过索引返回Location对象,但不确定是否有更好的方法。提前谢谢!
答案 0 :(得分:4)
尝试将此作为排序描述符:
NSSortDescriptor* sort = [NSSortDescriptor sortDescriptorWithKey:@"index" ascending:YES];
这将按照NSNumber * index属性的值按升序对位置对象进行排序。
答案 1 :(得分:0)
您也可以执行以下操作:[set allObjects]sortedArrayUsing...
并使用您想要的任何常规数组排序方法对其进行排序。
答案 2 :(得分:0)
更好的答案是使用index
,有时会崩溃。我不知道为什么,但是请很好地使用self
。
NSSortDescriptor* sort = [NSSortDescriptor sortDescriptorWithKey:@"self" ascending:YES];