我在核心数据中有一些记录,包含名称,有效,电子邮件,图像等。我在集合视图中显示了这些数据,在那里我提供了拖放/移动单元功能。现在如何更新核心数据中的重新排序/重新排列数据?请帮忙。
答案 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),将考虑名称,否则索引具有优先权。