0

我一直在解决这个问题这里

并尝试实施我自己的解决方案。不知何故,我没有得到任何部分。只有行。

在这种情况下为 3 行......但没有部分。至少应该有2个部分。2个月。我知道这一点,因为我检查了模型并且它们在那里。

我的核心数据模型有一个实体Year,包含许多个月(实体Month)。而且 Month 也有很多天(Entity Day

分别代表实体YearMonthDay的属性分别是 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"];

我的模型看起来像这样,

在此处输入图像描述

任何帮助是极大的赞赏。

谢谢!

努诺

4

2 回答 2

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"];
于 2012-08-31T21:58:06.153 回答
0

一次获取所有内容,并在返回后使用数组字典对其进行排序。因此,您遍历结果并为每个部分创建一个数组,并将其存储在为每个部分索引的字典中。你的字典看起来像

{ 
 {'January", "1,2,6,19,23,nil"},
 {'February", "2,7,18,19,28,nil"},
 {'March", "5,6,7,9,29,31,nil"},
 etc.
}

icodeblog上有一个很好的代码教程,其中提供了执行此操作所需的详细信息的示例。

于 2012-08-31T20:04:44.047 回答