是否有可能在不重新调用数据库层的情况下过滤 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/