【问题标题】:Core Data Relationship Fault核心数据关系故障
【发布时间】:2010-12-22 10:47:45
【问题描述】:

在 Core Data 中跟踪家族关系(1 个父实体 + 2 种子实体,其中一种是递归的),尝试在 Interface Builder 中创建一个下拉菜单,列出父实体的名称,以便用户可以选择一个关联为正在编辑的条目的父级。我已经设置了所有绑定,但是当它运行时,它会在菜单的第一个插槽中产生以下错误文本:

(<NSRelationshipDescription: 0x100143ed0>)、name parent、isOptional 1、isTransient 0、entity Family、renamingIdentifier parent、验证谓词 ( )、警告 ( )、versionHashModifier (null)、目标的关系错误entity Family, inverseRelationship subFamilies, minCount 0, maxCount 0 on 0x10025c850

我在网上做了一些阅读,这似乎与我建立了多对一关系的事实有关(因为一个父母可以有多个孩子,但我想要将每个孩子限制为只有一个父母)。我一直在试图找出一种方法来重组数据模型,以免在需要以这种方式调用的东西上建立多对一关系,但我一直在试图弄清楚如何跟踪孩子。有关解决问题的可能方法的任何想法?

【问题讨论】:

  • 您在哪里看到错误?除非你有特殊的调试标志,否则核心数据应该是静默的。

标签: xcode core-data interface-builder entity-relationship


【解决方案1】:

Core Data 中的错误不是错误,它只是意味着您尝试访问的内容尚未从数据库中检索到。如果您执行[fetchResults valueForKey:@"name"] 之类的操作,它将触发并且您应该得到您所期望的。你的关系模型应该没有问题。

顺便说一句,“minCount 0, maxCount 0”看起来很奇怪。这真的是你想要的吗? 0 的 minCount 和 1 的 maxCount 应该更有意义。

【讨论】:

  • 我在创建 minCountmaxCount 字段时将其留空,因为我想让它为多对一关系开放(不知道预期有多少孩子对于任何给定的父母)。感谢您的帮助!
  • 所以要明确一点,当我在日志中看到“关系错误”时,这不是我需要解决的问题,因为它只是说尚未加载?
  • @Evolve 正确。故障就像一个占位符,只有在你真正需要的时候才会加载数据。
猜你喜欢
  • 2012-09-07
  • 2012-10-24
  • 2012-10-14
  • 1970-01-01
  • 1970-01-01
  • 2012-03-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多