可能重复:
带有谓词的 NSFetchedResultsController 忽略从不同 NSManagedObjectContext 合并的更改
我正在使用 NSFetchedResultsController 来控制我正在使用的网格视图的更新。我正在设置一个复合谓词,其中有一个布尔属性,我正在检查 NO,然后还检查是否存在任何关系实体。
在后台线程中,我使用单独的 MOC 进行保存,这没有问题。仅将谓词设置为所选部分,我的委托方法被调用。如果我添加谓词的关系部分,我的委托永远不会被调用。
这是 NSFetchedResultsController 的限制吗?它不能检查子实体吗?
NSSortDescriptor *sortDesc = [NSSortDescriptor sortDescriptorWithKey:@"order" ascending:YES];
NSFetchRequest *req = [NSFetchRequest fetchRequestWithEntityName:@"Tab"];
//Problematic line here.
NSPredicate *pred = [NSPredicate predicateWithFormat:@"(selected == NO) && (modules.@count > 0)"];
[req setPredicate:pred];
[req setSortDescriptors:@[sortDesc]];
NSFetchedResultsController *fc = [[NSFetchedResultsController alloc] initWithFetchRequest:req managedObjectContext:self.managedObjectContext sectionNameKeyPath:nil cacheName:nil];
[fc setDelegate:self];