我创建了一个iOS应用,该应用允许我将数据输入数据库,然后在tableview中显示(使用NSFetchedResultsController和tableView cellForRowAtIndexPath)。这工作了。现在,我添加了3个一对多关系和另一个实体,我需要从数据库加载该实体(在一对多的一侧),而不是直接从数据库中提取它,以便数据可以在关系中使用。我仍然使用NSFetchedResultsController吗?

relationshipEntity2是Entity1和Entity2之间的一对多关系。指向Entity2的很多地方

我知道我应该使用:

Entity2 *entity2 = [[self.entity1.relationshipEntity2 allObjects]
   objectAtIndex:indexPath.row];


我是iOS开发的新手,甚至是Core Data的新手,但我必须学习它。非常感谢您提供的任何帮助或指向我尚未遇到的书籍或教程。我没有太多运气找到能做我应该做的事情。

谢谢,祝您度过愉快的一周!

-------增加了对项目的更多描述-------
我的任务是使视图控制器具有三部分的分段按钮。还有一个添加UIButton,它弹出带有UITextField的视图(将子视图带到最前面,而不是一个弹出窗口),以供输入以添加到视图控制器上的表视图。有2个实体和3个一对多关系。分段按钮上的每个按钮都有1种关系。如果用户已选择分段按钮的第一部分,则将值添加到弹出文本框,应仅将其添加到选择第一个分段按钮时看到的表视图中。我已经创建了CoreDataGeneratedAccessors。我有这个项目,将数据保存到数据库并获取数据以显示在表格视图中,但这是在添加分段的部分之前。现在,我必须弄清楚将数据分为“集合”,然后在选择分段按钮的第一段时显示所有的第一集合。我只是学习,只是想出了没有分段的部分,现在对我来说已经改变了。我已经使用过关系数据库,但是在iOS中似乎又是新的。

最佳答案

您的问题绝对不清楚。您并没有描述任何问题,也没有清晰地解释您想要完成的工作。

尝试推断您的意思:是的,您将继续使用fetchedResultsController。该控制器为每个indexPath提供正确的对象。构建单元格内容时,可以轻松地通过entity.relationship进入关系实体。

上面的代码将不起作用,因为entity.relationship返回的NSSet是无序的对象组。 (附加的allObjects不执行任何操作,并且是多余的。)因此,objectAtIndex将不起作用(这仅对NSArray对象有效)。

希望这可以帮助。

10-04 22:18
查看更多