【问题标题】:Load up entity from db rather than pulling data directly from db从 db 加载实体,而不是直接从 db 中提取数据
【发布时间】:2012-04-30 18:48:11
【问题描述】:

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

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

我知道我应该使用:

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

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

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

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

【问题讨论】:

    标签: ios database core-data entity relationships


    【解决方案1】:

    你的问题并不明确。你没有描述任何问题,也没有清楚地解释你想要完成的事情。

    试图推断你的意思:是的,你会继续使用你的 fetchedResultsController。此控制器为您提供每个 indexPath 的正确对象。在构建单元格内容时,您可以使用entity.relationship 轻松访问关系实体。

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

    希望这会有所帮助。

    【讨论】:

    • 这就是我要说的!我不清楚,这正是我得到的所有信息。问题是我认为我可能在字里行间遗漏了一些东西,因为我是 iOS 开发的新手。这也是我被告知要解决问题的方式。
    • 所以现在你所要做的就是勾选上面的复选标记并投票表扬我出色的读心术...... ;-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-30
    • 2011-01-27
    • 1970-01-01
    • 2016-08-24
    • 1970-01-01
    • 1970-01-01
    • 2016-02-29
    相关资源
    最近更新 更多