如何过滤NSFetchedResultsController,如“filteredArrayUsingPredicate”

时间:2012-02-06 21:20:47

标签: objective-c ios core-data nsarray nspredicate

是否有可能在没有对数据库层的新调用的情况下过滤NSFetchedResultsController的结果,就像我使用带有“filteredArrayUsingPredicate”的NSArray一样

由于

1 个答案:

答案 0 :(得分:1)

您可以在用于初始化NSFetchedResultsController的NSFetchRequest上设置谓词。例如:

- (NSFetchedResultsController *)fetchedResultsController {

    if (fetchedResultsController != nil) {
        return fetchedResultsController;
    }

    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];

    fetchRequest.entity = <YOUR ENTITY>

    fetchRequest.predicate = [NSPredicate predicateWithFormat:<YOUR PREDICATE>];

    NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:moc sectionNameKeyPath:nil cacheName:nil];
    // ...

您不应该“刷新”提取的结果控制器,因为它应该在更改和保存时更新。您可能需要使用样板代码来使用和/或使用获取的结果控制器更新表视图。