如何根据计算的属性过滤NSFetchedResultsController的结果?

时间:2012-12-04 22:13:22

标签: objective-c ios core-data nspredicate

我有NSManagedObject名为WorkOrder,在该类的类别中定义了布尔属性isComplete

我使用NSFetchedResultsController从数据存储中获取这些内容并将其显示在表视图中。我希望能够根据isComplete属性过滤结果,但当然NSFetchedResultsController中的谓词不能这样做,因为该属性不是Core Data属性。我也无法过滤控制器的fetchedObjects数组,因为该属性是只读的。

有没有办法做我正在尝试做的事情而没有滚动我自己的模仿NSFetchedResultsController的数据结构,但允许我过滤后取结果?

2 个答案:

答案 0 :(得分:2)

正如我在Adam Eberbach回答的评论中所说,我使用NSDictionaryself.workOrdersByDate,下面)来解决这个问题,以存储分组结果,以及{{1 (NSArray,下面)存储字典的排序键。

self.dateSections

答案 1 :(得分:1)

您收到Core Data查询中的一组对象,为什么不在该结果上使用filteredArrayUsingPredicate来获取您真正想要的数组呢?

在这种情况下,您可以放弃使用NSFetchedResultsController直接填充表格,但在数据更改时它仍然对其委托通知有用。