如何在CoreData中使用单个实体时坚持重新排序项目?

时间:2017-11-09 10:05:07

标签: arrays swift sorting core-data

用户可以重新排序UITableView中的项目,数据来自单个实体。我希望将用户定义的顺序(通过移动项目)保持为CoreData,以便在我获取记录时,顺序将是用户定义的顺序。我知道你可以通过在模型中使用一个整数属性来做到这一点,但如果我有很多记录,那将是低效的,因为我必须更新每个其他记录。有没有一种优雅的方式我可以实现这一点,而不必使用我提到的方法?感谢

1 个答案:

答案 0 :(得分:0)

如果这些项目与其他项目相关,您可以使用该项目中的有序多对多关系。这是Core Data提供的唯一选择。

对于它的价值,如果添加排序索引,当用户更改订单时,需要更新“每个”其他记录。您只需要更新变更的开始和结束位置之间的那些。例如,如果用户将某些内容从索引2移动到索引12,则索引1处的项仍然位于索引1处,索引13到800亿位处的项也具有相同的索引。