使用NSSortDescriptor对NSNumber进行排序

时间:2013-09-15 02:06:49

标签: ios core-data nssortdescriptor

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

@property (nonatomic, retain) NSNumber *index;

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

sortedArrayUsingDescriptors

但我不知道如何使用sortDescriptor对NSNumber进行排序。我见过人们只使用像

这样的代码
sortedArrayUsingSelector:@selector(compare:) // or something like that

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

3 个答案:

答案 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];