0

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

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

4

1 回答 1

0

您可以做的最好的事情是订购它们,然后根据相同的日期创建分组。(注意:虽然我适当地使用了真实的函数名称,但这只是伪代码。自己填补空白,或者如果您需要更多帮助,请询问)

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

这应该足以让你开始。

于 2012-06-07T05:03:27.157 回答