我使用以下代码从一个国家/地区的branch
表格中获取结果:
- (NSFetchedResultsController *)fetchedResultsController
{
if (_fetchedResultsController != nil)
{
return _fetchedResultsController;
}
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"BranchData" inManagedObjectContext:[BRCoreRepository instance].managedObjectContext];
[fetchRequest setEntity:entity];
[fetchRequest setFetchBatchSize:5];
NSString *cache = nil;
if (searchValue.length > 0){
fetchRequest.predicate =[NSPredicate predicateWithFormat:@" city contains[cd] %@ || address contains[cd] %@ || branchCode contains[cd] %@ ",searchValue,searchValue,searchValue];
} else cache = @"_preditc_state";
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"branchState" ascending:YES];
[fetchRequest setSortDescriptors:@[sortDescriptor ]];
_fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest
managedObjectContext:[BRCoreRepository instance].managedObjectContext
sectionNameKeyPath:@"branchState"
cacheName:cache
];
_fetchedResultsController.delegate = self;
return _fetchedResultsController;
}
在当前代码中,我可以根据分支的branchState
创建部分。它工作正常,但我有另一个问题 - 我想根据部分项目计数订购项目。因此,如果在状态B
中我们有200个项目,但在A
部分中我们在结果中有150个项目,我们会在部分B
上方显示A
部分。这也可以用NSFetchedResultsController
吗?
答案 0 :(得分:0)
您必须在父类中建模关系计数。这可以通过覆盖NSManagedObject
子类中的关系的setter来自动化。