我在将核心数据添加到具有2x Master-detail表的项目时遇到问题:Master-A,Detail-A; Master-B,Detail-B。 Master-B列出了唯一属于Master-A中的行的项目。它是从A到B的多对多关系,以及从B到A的一对一可选关系。否则,详细公开按钮用于从Master到Detail表。
我使用故事板和展开segues来连接表格。在尝试添加核心数据之前,表格有效,我能够为每个主要细节添加/编辑项目。
我添加了核心数据,可以获得Master-A和Detail-A来将数据保存到sqlite文件中。我的问题是在Master B文件中添加数据并使用xcdatamodeled文件中设置的关系将数据连接到Master A行。如果我将关系设置为可选,我可以存储B项的数据,但是对于所有A项显示相同的B次。如果我将关系设置为非可选,我会收到1570错误,指出缺少必需的关系或属性。
我应该使用CoreDataGeneratedAccessors吗?或者我应该使用匹配谓词?要么 …。
抱歉 - 我真的很陌生,很丢失。我需要一些帮助才能找到正确的方向。我更喜欢使用故事板,因为我对此很新,并且无法看到以编程方式创建视图控制器的位置可以解决问题。大多数具有关系的核心数据教程都非常简单和/或不使用表。任何帮助将不胜感激。
答案 0 :(得分:0)
这里有一个相当重要的脱节。核心数据是您的模型,您正在谈论视图控制器。当你一起使用这些概念时,一个人并没有像你想的那样真正影响另一个。
视图控制器显示模型中的数据。作为开发人员,您可以自定义该行为的工作原理,是的,您可以使用故事板。
你的模特是什么样的?你能发布截图吗?
通常,当您在故事板情况下从一个“主”移动到另一个“主”时,您将使用-prepareForSegue:identifier:
方法中的依赖注入将所需信息传递给下一个视图控制器以供显示。与NSFetchedResultsController
的实例相结合,您可以显示模型中的数据。
答案 1 :(得分:0)
以下链接将带您进入项目的精简版本。我在Kevin McNeish的第3册:导航Xcode 5中使用核心数据设置。他没有使用fetchresultscontroller - 也许这就是我应该做的但是我可以得到一个简单的主细节项目。只是当我有多个主 - 细节关系时,我遇到了问题 - 谢谢。 https://drive.google.com/folderview?id=0ByH8ka19v3sTZ3FHYnZ0WEVBeGc&usp=sharing