Пример У меня есть NSFetchedResultsController, вызываемый в ListController и называемый FetchController
+(NSFetchRequest * )fetchRequestInContext: (NSString*) entityName : (NSPredicate *) predicate : (NSString*) sortKey : (BOOL) sortAscending;
+(NSFetchedResultsController *) searchControllerInContext: (NSString*) entityName : (NSPredicate *) predicate : (NSString*) sortKey : (BOOL) sortAscending
{
NSFetchRequest *request = [self fetchRequestInContext:entityName :predicate :sortKey :sortAscending];
NSFetchedResultsController * FRC=[[[NSFetchedResultsController alloc] initWithFetchRequest:request managedObjectContext:[ThreadClass managedObjectContext] sectionNameKeyPath:Nil cacheName:Nil]autorelease];
NSLog(@"FRC : %@",FRC);
return FRC;
}
. Посмотрите на этот код, я вызываю searchControllerInContext, когда хочу создать NSFetchedResultsController, а затем выполнить его с помощью этого кода:
if (![[self ListController].FetchController performFetch:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
проблема в том, что я не люблю всегда выполнять выборку при изменении запроса, я хочу упростить ее с
[self ListController].FetchController.fetchRequest=[self FunctionTogetNewRequest];
, но [self ListController] .FetchController.fetchRequest доступен только для чтения ..
Я хочу сделать это, потому что я не хочу снова и снова выполнять perfomFetch ... могу ли я это сделать?
Я имею в виду, если у меня есть программа, которая выдает записи на основе того, что пользователь поместил в поле поиска,я должен создавать новый контроллер каждый раз, когда меняется содержимое окна поиска?Это было бы странно.Я думал, что весь смысл использования NSFetchedResultsController заключается в том, что нам не нужно этого делать?