iOS通过关系检索和排序Core Data实体

时间:2014-02-23 21:03:41

标签: ios uitableview core-data

我最近询问this question如何最好地检查并在tableview中显示我的FRC用于节标题的标题。

根据@Mike Pollard在我的问题的第二个答案中提出的一系列研究,我跑过this question并立即被与我的情况相似的第4个答案所震惊,@ aroth发布。

Aroth的方法肯定是合理的,我创建了一个新的Category实体。具体而言,Category与Item具有to-many关系,而Item与Category具有to-one关系。但是,我无法理解他提出的解决方案中隐含的一个方面,更重要的是,在这种关系中:

在我的情况下,类别和项目 - “项目”在我的情况下被称为“ListActivity”,但“项目”将用于说明目的 - 将通过两个相应的用户输入命名字段,似乎可能导致类别列表中的多个相同名称的条目。

我的问题:

我如何确保在获取类别列表时获得每个类别的单个实例,即在tableview中每行一个类别,没有重复? Core Data会通过关系自动将每个新传入的项目分配给相应类别的单个实例吗?或者它会以某种方式测试并在收到提取请求后将列表下拉到每个类别名称一个条目?或者必须使用获取请求中的谓词来完成过滤?

谢谢!

1 个答案:

答案 0 :(得分:1)

核心数据将按照您的说法执行操作。这听起来像是与您在数据存储中创建内容相关的问题,而不是FRC和表视图的问题。您有责任搜索和重用现有对象,而不是创建重复项并将其添加到商店 - 事实上,只有您(您的代码)知道什么构成副本。

因此,基本上,在创建新项目时,使用获取请求和谓词来查找合适的现有类别(或根据部分输入的名称建议类别)。然后,连接到现有类别或创建一个新类别。