核心数据:检索按日期分组的所有项目实体?

时间:2012-06-06 23:18:06

标签: ios core-data

我有一个名为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)

有人能告诉我最好的方法吗?谢谢!

1 个答案:

答案 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];

这应该足以让你开始。