0
所以,我对于获取我所有的核心数据实体所调用的设置用于获取实体谓词fetchedResultsController最佳实践
- (NSFetchedResultsController *)fetchedResultsController {
if (fetchedResultsController_ != nil) {
return fetchedResultsController_;
}
/*
Set up the fetched results controller.
*/
// Create the fetch request for the entity.
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
// Edit the entity name as appropriate.
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Setting" inManagedObjectContext:self.managedObjectContext_];
[fetchRequest setEntity:entity];
[fetchRequest setReturnsObjectsAsFaults:NO];
[fetchRequest setResultType:NSManagedObjectResultType];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"serviceName" ascending:NO];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
// Edit the section name key path and cache name if appropriate.
// nil for section name key path means "no sections".
NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext_ sectionNameKeyPath:nil cacheName:nil];
aFetchedResultsController.delegate = self;
self.fetchedResultsController_ = aFetchedResultsController;
[aFetchedResultsController release];
[fetchRequest release];
return fetchedResultsController_;
}
我有NSFetchedResultsController *fetchedResultsController
一个属性,我一直在使用它therough应用程序被下面的代码通过:
[self.fetchedResultsController_ fetchedObjects]
的问题是,我想与一个特定的属性,即获取实体:一个谓语:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"%K == %@", @"settingName", somesettingName];
[fetchRequest setPredicate:predicate];
问题是我应该创建一个新的fetchResultsControllerWithServiceName: (NSString *) serviceName
还是应该使用现有的方法?最佳做法是什么?
那么你是说创建一个方法来设置谓词,然后再次调用performFetch? – xonegirlz 2012-03-28 02:51:49
是的,这应该就够了。 – warrenm 2012-03-28 02:54:28
如果现在我想在调用此函数之后获取未设置谓词的fetchedObjects,该怎么办?我基本上必须重置NSFetchRequest的谓词(self.fetchedResultsController.fetchRequest setPredicate:nil)权限后? – xonegirlz 2012-03-28 04:01:27