0

可能重复:
带有谓词的 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];
4

0 回答 0