带NSPredicate与核心数据的获取结果控制器NSSet

问题描述:

好吧,我有一个UITableView层次结构。顶级控制器用于类别,这些类别是通过Fetched Results Controller选择的,对于类别实体没有谓词。带NSPredicate与核心数据的获取结果控制器NSSet

当用户点击单元格时,它们会前进到项目表视图控制器。

在这一点上,我认为我应该使用另一个带有NSPredicate的提取结果控制器来筛选出与选择类别不匹配的结果。

但是,我在构建一个谓词时遇到了很多困难。所有的例子似乎都是为了搜索字符串来进行属性比较。不比较CoreData关系。

那么使用这种方法是一种更好的做法,还是直接从传递的类别管理对象中获取NSSet项?

您的第二级视图控制器应该通过依赖注入将所选类别设置为属性。你的第二级视图控制器应该只知道“它是”类别是X.它根本不需要NSFetchedResultsController,因为你已经拥有了通过“它是”类别实体上的关系需要的所有信息。

为此,在顶级视图控制器中选择类别时,您将通过NSFetchedResultsController获取指向它的指针,实例化新视图控制器,设置Category属性,然后推送新视图控制器。

这会给你的视图控制器之间的固体封装和分离。