我一直在回答这个问题Here
尝试实施我自己的解决方案。不知何故,我没有得到任何部分。只有行。
在这种情况下3行......但是没有章节。至少应该有2个部分。 2个月。我知道这是因为我检查了模型并且他们在那里。
我的核心数据模型有一个实体年,包含许多个月(实体月)。而月也有很多天(实体日)
分别代表每个实体的属性分别为年份,月份,月份和日期,分别为实体年,月和日。
我要做的是获取所有日期的提取,在给定的一个月,在给定年份我可以让我的部分代表一个月和行代表天。
有人能帮助我吗?
编辑:更新代码
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"];
我的模型看起来像这样,
非常感谢任何帮助。
谢谢!
努诺
答案 0 :(得分:1)
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"];
答案 1 :(得分:0)
立即获取所有内容并使用数组字典在返回后对其进行排序。因此,循环遍历结果并为每个部分创建一个数组,并将数组存储在为每个部分编制索引的字典中。你的词典看起来像
{
{'January", "1,2,6,19,23,nil"},
{'February", "2,7,18,19,28,nil"},
{'March", "5,6,7,9,29,31,nil"},
etc.
}
有一个good tutorial with code at icodeblog给出了执行此操作所需详细信息的示例。