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 に答える