objective-c - 如何像 "filteredArrayUsingPredicate"那样过滤NSFetchedResultsController

标签 objective-c ios core-data nsarray nspredicate

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

谢谢

最佳答案

您可以在用于初始化 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];
    // ...

您不需要“刷新”获取的结果 Controller ,因为它会随着更改的进行和保存而更新。您可能需要使用样板代码来使用和/或更新带有获取结果 Controller 的 TableView 。

关于objective-c - 如何像 "filteredArrayUsingPredicate"那样过滤NSFetchedResultsController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9167430/

相关文章:

ios - 查找哪个单元格被单击并执行 Segue

objective-c - 子类化 CCSprite 的优势

ios - SQLite 和 Objective C - WHERE LIKE 语句错误

ios - UIPageViewController;如何处理动态变化的数据源

ios - 如何在 Swift 中分配 CoreData 多对多关系?

swift - 调度队列异步调用

iphone - 将 PDF 从 NSData 存储到 iphone 手机库

objective-c - C 中的 Swift 可变数组

ios - prepareforsegue 后不传递值。 swift

ios - 初始化 NSPersistentStore 对象