什么时候应该调用![[self ListController] .FetchController performFetch:& error]?

时间:2011-09-15 05:41:20

标签: objective-c xcode nsmanagedobjectcontext

+(void)CoreSetAllBiz : (NSString *) searchTerm{
    [self ListController].FetchController.fetchRequest.predicate=[BNUtilitiesQuick getFinalPredicate:searchTerm];
    [self ListController].FetchController.fetchRequest.sortDescriptors= [FetchClass getMoreSearchDescriptorsForEntity:@"Business" withMainSortKey:[BNUtilitiesQuick sortBasedOn]];
    NSError *error=nil;

    if (![[self ListController].FetchController performFetch:&error]) {
        DLog(@"Unresolved error %@, %@", error, [error userInfo]);
        //abort();
    }
}

我有这个功能。但是,该功能效率不高。通常,searchTerm不会改变。谓词通常不会改变。

那么什么时候应该调用![[self ListController] .FetchController performFetch:& error]?

当managedObjectContext发生变化时,我们应该调用它吗?请注意,即使[self ListController] .FetchController.fetchRequest.predicate和[self ListController] .FetchController.fetchRequest.sortDescriptors没有因为底层的managedobjectcontext更改而改变

,返回的数据也会不同

当sortDescriptors或谓词发生变化时,我们应该调用它吗?

或者,当不再需要performFetch时,FetchController是否具有某种形式的内部机制?

0 个答案:

没有答案