ios – 两个CoreData实体之间可以有多个“to-many”关系吗?

ios – 两个CoreData实体之间可以有多个“to-many”关系吗?,第1张

概述我的模型有一个实体“过滤器”和一个实体“颜色”.我希望它们之间两个“To-Many”关系:“背景”和“前景”. (即每个“过滤器”包含一组背景颜色和一组前景色,所有类型都是“颜色”). 我有两个问题.首先,当我设置关系时,“颜色”的反转只能有一个值(我猜这意味着我不能做我想做的事).其次,我无法弄清楚如何创建谓词来仅获取背景或仅获取前景.我假设以下将返回所有它们合并在一起(如果它一直工作): N 我的模型有一个实体“过滤器”和一个实体“颜色”.我希望它们之间有两个“To-Many”关系:“背景”和“前景”. (即每个“过滤器”包含一组背景颜色和一组前景色,所有类型都是“颜色”).

我有两个问题.首先,当我设置关系时,“颜色”的反转只能有一个值(我猜这意味着我不能做我想做的事).其次,我无法弄清楚如何创建谓词来仅获取背景或仅获取前景.我假设以下将返回所有它们合并在一起(如果它一直工作):

NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityname:@"color"];nspredicate *predicate = [nspredicate predicateWithFormat:@"filter == %@",self];

我将通过将color转换为两个Foreground和Background实体来解决这个问题,但我不想在不理解为什么单个实体无法工作的情况下这样做.我在这里错过了什么吗?

注意:这显然对我来说不直观.我再次遇到了这个问题,但这次我没有使用谓词,所以我没有立即找到问题.我有一个非常相似的设置,但当我试图删除一个孩子时,它最初会消失,但当我重新启动我的应用程序时,将不止一次重新出现.我删除的孩子越多,我就越多.我最终注意到两个关系数组都有相同的孩子,当我查看模型的图形版本时,只有一个关系有一个箭头连接到孩子.最后,我记得以前我遇到过这个问题!我不太了解发生了什么,但显然两个孩子的“数组”以奇怪的方式合并在一起.

解决方法 是.

关于多对多关系的理论

假设您拥有实体CHILD,无论是男孩还是女孩.每个孩子都可以拥有所有兄弟姐妹中的一组(对多).但是每个孩子在他们所有的1个兄弟和2个姐妹中也可能还有两组(对多).

“兄弟姐妹”的反向关系是“isSiblingTo”(或兄弟姐妹).而“兄弟”和“姐妹”的反面将是“isbrotherTo”和“isSisterTo”.

这很简单,因为两个实体都是一样的.

比如说,我是一个有一套蜡笔和一套玩具的孩子.我可能在这两套中都有我的红色蜡笔,即我必须与它有许多关系.

这一切归结为红色蜡笔既是我的Crayon又是我的玩具.
和上面的兄弟姐妹一样,孩子的兄弟都是他们的兄弟姐妹,他们的兄弟和姐妹都是他们的兄弟姐妹和姐妹.

更新:

你不需要成为这两种关系的一部分.你可以让一个没有兄弟姐妹关系但没有兄弟姐妹关系的孩子和其他孩子会有相反的关系(这更接近你的滤色镜例子)

应用于您的示例

所以,如果你有用它,它是可行的.只需考虑他们在日常语言中的关系,并将其设置为isForegroundcolorTo和isBackgroundcolorTo.

具有多对多关系的数据模型

颜色模型定义

过滤器模型定义

总结

以上是内存溢出为你收集整理的ios – 两个CoreData实体之间可以有多个“to-many”关系吗?全部内容,希望文章能够帮你解决ios – 两个CoreData实体之间可以有多个“to-many”关系吗?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1051931.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存