如何更改coredata中的记录顺序?

时间:2015-08-31 13:10:05

标签: ios objective-c iphone core-data

我在核心数据中有一些记录,包含名称,有效,电子邮件,图像等。我在集合视图中显示了这些数据,在那里我提供了拖放/移动单元功能。现在如何更新核心数据中的重新排序/重新排列数据?请帮忙。

1 个答案:

答案 0 :(得分:3)

CoreData没有任何订购。

您需要做的是订购您提取的数据。例如,如果您使用NSFetchRequest,则可以添加NSSortDescriptors数组,以指定所提取数据的排序顺序

所以,例如:

NSFetchRequest *request = ....
request.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES]];

编辑:评论后: 如果必须将顺序保存到CoreData存储,我看到的唯一方法是在模型中添加整数属性。默认情况下,您可以将其保留为-1,即无订单。 当您在UI中执行拖放操作时,您可以将索引保存到属性并将其保留在商店中。

您的抓取请求可能会变成

 request.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"order" ascending:YES], [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES]];

这样,在排序相等的情况下(-1),将考虑名称,否则索引具有优先权。