2

我有一个 Route 作为我的顶级核心数据实体。然后路线有位置。地点有一个

@property (nonatomic, retain) NSNumber *index;

我需要索引,因为我需要确保用户的路线是有序的。我想知道如何最好地对 Locations 实体进行排序。在我的 tableView 中,我显示了 Route 的名称。然后,当用户单击路线时,我会显示位置。我看到 NSSet 有

sortedArrayUsingDescriptors

但我不知道如何使用 sortDescriptor 对 NSNumber 进行排序。我见过人们只是使用类似的代码

sortedArrayUsingSelector:@selector(compare:) // or something like that

我可以编写一个简单的便捷方法来遍历 NSSet 并通过索引返回 Location 对象,但不确定是否有更好的方法。提前致谢!

4

3 回答 3

4

尝试使用它作为您的排序描述符:

NSSortDescriptor* sort = [NSSortDescriptor sortDescriptorWithKey:@"index" ascending:YES];

这将按照它们的 NSNumber* 索引属性的值按升序对您的位置对象进行排序。

于 2013-09-15T02:20:10.300 回答
0

您也可以这样做:[set allObjects]sortedArrayUsing...并使用您想要的任何普通数组排序方法对其进行排序。

于 2013-09-15T03:16:37.420 回答
0

更好的答案,使用index,有时会崩溃。我不知道为什么,但self很好用。

NSSortDescriptor* sort = [NSSortDescriptor sortDescriptorWithKey:@"self" ascending:YES];
于 2020-07-01T03:07:01.907 回答