【发布时间】:2011-11-04 06:39:28
【问题描述】:
示例我在 ListController 中调用了 NSFetchedResultsController,称为 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;
}
看看那个代码,当我想制作 NSFetchedResultsController 时我调用了 searchControllerInContext 然后用这个代码执行它:
if (![[self ListController].FetchController performFetch:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
问题是我不喜欢在请求更改时总是执行Fetch,我想让它变得容易
[self ListController].FetchController.fetchRequest=[self FunctionTogetNewRequest];
但是 [self ListController].FetchController.fetchRequest 是只读的..
我想这样做是因为我不想一次又一次地执行 Fetch.. 我可以这样做吗?
我的意思是,如果我有一个程序可以根据用户在搜索框中输入的内容提供记录,我是否应该在每次搜索框内容更改时创建一个新控制器?那会很奇怪。我认为使用 NSFetchedResultsController 的全部意义在于我们不必这样做?
【问题讨论】:
标签: objective-c xcode core-data