使用NSPredicate与核心数据NSSet获取结果控制器

时间:2010-08-04 15:10:59

标签: iphone core-data nspredicate

好的,我有一个UITableView层次结构。顶级控制器用于类别,通过提取结果控制器选择,没有类别实体的谓词。

当用户点击一个单元格时,它们会前进到Items Table View Controller。

此时,我假设我应该使用另一个带有NSPredicate的获取结果控制器来过滤掉与选择类别不匹配的结果。

但是,构建一个执行此操作的谓词时遇到了很多困难。所有示例似乎都是用于搜索字符串来进行属性比较。不比较CoreData关系。

使用此方法是一种更好的做法,还是只是从传入的类别管理对象中获取NSSet项目?

1 个答案:

答案 0 :(得分:2)

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

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

这将为您提供视图控制器之间的可靠封装和分离。