我有一个名为Item的核心数据实体,它有一个日期字段。我想检索按日期分组的数据库中的所有项目,例如:
Item one, date: 1/1/11
Item two, date: 1/1/11
Item three, date: 1/2/11
应该返回:
(Item one, Item two), (Item three)
有人能告诉我最好的方法吗?谢谢!
答案 0 :(得分:0)
您可以做的最好是订购它们,然后根据相同的日期创建分组。 (NOte:虽然我使用的是真正的函数名称,但这只是伪代码。请自行填写空白,或者如果需要更多帮助请问)
NSFetchRequest *request=[NSFetchRequest alloc init];
NSSortDescriptor *sort=[NSSortDescriptor sortDescriptorWithKey: @"foo" ascending:YES];
[request setSortDescriptors:[NSArray arrayWithObject:sort]];
//Fetch
NSMutableArray* master=[NSMutableArray array];
NSMutableArray* current=[NSMutableArray array];
NSDate *lastDate=[fetchedObjectsArray objectAtIndex:0].date;
forin(ManagedObjectSubclass *foo in fetchedObjectsArray)
{
//You'll need to figure out an algorithm to determine if two dates are the same.
//This code WILL NOT work as written.
if(foo.date == lastDate)
{
[current addObject:foo];
}
else
{
[master addObject:current];
current=[NSMutableArrayArrwayWithObject foo];
}
}
[master addObject:current];
这应该足以让你开始。