我在UITableView中有一个列表,我将让用户重新排序,并将此顺序保留在Core Data / CloudKit中。如果列表中的每个项目在Int类型的数据库中都有一个索引值存储,那么当有人将一个单元格向上移动到列表中的第一项(最差)时,我将不得不立即重写整个列表的索引值。案例方案)。我以为我可以通过将Double用作索引值,并简单地将插入项的索引值设置为插入的两个索引之间的一半,就可以将整个数据库表的内容避免此更新。
这似乎是一个解决方案,直到您将项目移动到相同位置,例如,在列表中的第一项和第二项之间不断插入项目。使用索引值为1、2、3的3个项目的列表,您只需将项目3在项目1和2之间移动13次,即可使用Swift Double达到此算法的极限。
因此,要解决此问题,我应该实施此解决方案,然后还实施重新索引操作,以便在应用程序活动不那么繁忙并且能够快速执行更昂贵的操作时立即将数据库索引值重写为Int精度。 。
我真的想不出任何其他方法来解决这个问题。