NSFetchedResultsController委托方法未使用复合谓词调用

时间:2012-10-05 15:03:39

标签: ios nspredicate nsfetchedresultscontroller

  

可能重复:
  NSFetchedResultsController with predicate ignores changes merged from different 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];

0 个答案:

没有答案