ios - 从数据库加载实体而不是直接从数据库提取数据

标签 ios database core-data entity relationships

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

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

我知道我应该使用:

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

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

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

--------添加了有关项目的更多描述--------
我的任务是拥有一个带有 3 部分分段按钮的 View Controller 。还有一个添加 UIButton,它会弹出一个 View (将 subview 带到前面,而不是弹出窗口),其中包含一个 UITextField 用于输入以添加到 View Controller 上的 TableView 。有 2 个实体和 3 个一对多关系。分段按钮上的每个按钮都有 1 个关系。如果用户选择了分段按钮的第一部分,则将值添加到弹出文本框,则应仅将其添加到选择第一个分段按钮时看到的表格 View 。我创建了 CoreDataGenerateAccessors。我有这个项目将数据保存到数据库并获取数据以显示在 TableView 中,但那是在添加分段部分之前。现在我必须弄清楚将数据分成“集合”,然后在选择分段按钮的第一段时显示所有第一个集合。我只是在学习,只是在没有分段部分的情况下弄清楚了它,现在它在我身上发生了变化。我曾经使用过关系数据库,但在 iOS 中它似乎又是新的了。

最佳答案

你的问题根本不明确。您没有描述任何问题,也没有清楚地解释您想要完成的任务。

尝试推断您的意思:是的,您将继续使用 fetchedResultsController。该 Controller 为您提供每个索引路径的正确对象。构建单元格内容时,您可以使用 entity.relationship 轻松访问关系实体。

上面的代码将不起作用,因为 entity.relationship 返回一个 NSSet,它是一组无序的对象。 (额外的 allObjects 不执行任何操作,并且是多余的。)因此,objectAtIndex 将不起作用(这只适用于 NSArray 对象)。

希望这对您有所帮助。

关于ios - 从数据库加载实体而不是直接从数据库提取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10388904/

相关文章:

cocoa - 走核心数据图的多关系总是显得很尴尬,有更好的方法吗?

iphone - NSFetchedResultsController 的委托(delegate)方法处理

ios - ABPeoplePickerNavigationController "All Contacts" header 上的自定义文本

ios - 在 UIStackView 中隐藏 arrangedSubviews 而不是裁剪内容

ios - 在 SWIFT 中发送本地通知

sql - 将同一列的两个或多个条目显示为一个字符串

sql-server - 日期之间和基于员工姓名的 SQL 查询

sql-server - CSV 文件上的 SSIS Foreach 循环错误

ios - iOS对组ABRecordRef的CFArrayRef进行排序

ios - 全新安装的核心数据迁移