+(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是否具有某种形式的内部机制?