gpt4 book ai didi

ios - 多对多关系中的 CoreData 排序

转载 作者:行者123 更新时间:2023-11-28 22:41:13 25 4
gpt4 key购买 nike

我有一个 Core Data 设计问题,我是新手,我仍在研究 Apple 指南。

我有两个实体:“BOX”(属性:名称、颜色、排序值)和“CD”(仅属性:名称)。这是一个多对多的关系。

在我的虚拟办公 table 上,我可以放很多盒子。

一个 BOX 可以包含许多 CD。同一张 CD 的副本可以存放在 table 上的不同 BOX 中。

我使用 orderingValue 属性对 BOX 进行排序,以便它们可以在 table 上交换位置。

问题出在 CD 上。

我希望能够重新排列每个 BOX 中 CD 的顺序。我不能像对 BOX 那样对 CD 实体使用 orderingValue 属性,因为如果我将它设置为“5”,则该 CD 将位于每个 BOX 中的第 5 个位置,这不是我想要的。

我想使用有序关系,但我放弃了这个选项,因为它还不兼容我想支持的 iCloud。

对于标准数据库,我会创建第三个表,其中包含 BOX.Id、CD.Id 和 orderingValue,我会将它与 JOIN 一起用于排序。

在不使用有序关系的情况下,在 CoreData 中处理这种情况的最佳选择是什么?

谢谢

尼古拉

更新:我听从了 codeghost 的建议,它完美地工作了!

最佳答案

我遵循了 codeghost 的建议:

1) 我创建了第三个实体,我称之为“LinkedCD”,只有一个属性:orderingValue;

2) 我创建了从实体“Box”到“LinkedCD”的一对多关系;

3) 我创建了从实体“Cd”到“LinkedCD”的一对多关系。

我现在可以独立地为每个盒子分类 CD。

当我将 CD 添加到一个 BOX 时,我在 CoreData 中插入了一个新的 LinkedCD 实体,并计算了每次 CD 移动到 BOX UITableView 中时更新的起始排序值。当加载 UITableView 时,我用所有按 LinkedCD.orderingValue 排序的 LinkedCD.Cd.name 填充它。

一切正常。

尼古拉

关于ios - 多对多关系中的 CoreData 排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14479886/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com