我最近问了this question关于如何最好地在表格 View 中检索和显示我的 FRC 用于节标题的标题。
按照@Mike Pollard 在我的问题的第二个答案中建议的一系列研究,我遇到了 this question并立即对与我的情况的相似性以及@aroth 发布的第 4 个答案感到震惊。
Aroth 的方法看起来确实不错,而且我已经创建了一个新的类别实体。具体来说,Category与Item是一对多的关系,Item与Category是一对一的关系。但是,我无法理解他提出的解决方案中隐含的一个方面,更根本的是,在这种关系中:
在我的例子中,Category(s) 和 Item(s)——“Item”在我的例子中被称为“ListActivity”,但“Item”将用于说明目的——将通过两个相应的用户输入命名字段,这似乎会导致类别列表中出现多个同名条目。
我的问题:
如何确保当我获取类别列表时,我得到每个类别的单个实例,即,tableview 中每行一个类别,没有重复? Core Data 会通过关系自动将每个新传入的项目分配给适当类别的单个实例吗?或者它是否会在收到获取请求后以某种方式测试并将列表筛选为每个类别名称的一个条目?或者必须在获取请求中使用谓词完成过滤?
谢谢!
最佳答案
Core Data 会按照您的吩咐去做。这听起来像是与您在数据存储中创建内容相关的问题,而不是 FRC 和 TableView 的问题。您有责任搜索和重用现有对象,而不是创建重复项并将它们添加到商店中 - 事实上,只有您(您的代码)知道什么是重复项。
因此,基本上,当您创建新项目时,使用获取请求和谓词来查找合适的现有类别(或根据部分输入的名称建议类别)。然后,连接到现有类别或创建新类别。
关于iOS 检索和排序具有关系的核心数据实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21974500/