我一直在思考这个问题Here
并尝试实现我自己的解决方案。不知怎的,我没有得到任何部分。仅行。
本例中为 3 行...但没有部分。至少应该有 2 个部分。 2个月。我知道这一点是因为我检查了模型并且它们就在那里。
我的核心数据模型有一个实体年,包含多个月份(实体月)。并且月份也有很多天(实体日)
分别代表实体年、月和日的属性为year_、month_和day_。
我想做的是对所有日期、给定月份、给定年份的提取请求这样我就可以让我的部分代表月份,行代表天。
有人可以帮我吗?
编辑:更新代码
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Day" inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"day_" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
[fetchRequest setFetchBatchSize:20];
NSFetchedResultsController *theFetchedResultsController =
[[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest
managedObjectContext:managedObjectContext
sectionNameKeyPath:@"month.month_"
cacheName:@"Root"];
我的模型看起来像这样,
非常感谢任何帮助。
谢谢!
努诺
最佳答案
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
[fetchRequest setPredicate: [NSPredicate predicateWithFormat:@"";
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Day" inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];
NSSortDescriptor *sort = [[NSSortDescriptor alloc] initWithKey:@"Month.month_" ascending:NO];
NSSortDescriptor *sort2 = [[NSSortDescriptor alloc] initWithKey:@"day_" ascending:NO];
[fetchRequest setSortDescriptors:[NSArray arrayWithObjects:sort,sort2]];
[fetchRequest setFetchBatchSize:20];
NSFetchedResultsController *theFetchedResultsController =
[[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest
managedObjectContext:managedObjectContext sectionNameKeyPath:"month.month_"
cacheName:@"Root"];
关于objective-c - 使用 NSFetchedResultsController 将谓词从核心数据模型提取到各个部分中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12220353/