日付フィールドを持つ 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)
誰かがこれを行うための最良の方法を教えてもらえますか? ありがとう!
あなたができる最善の方法は、それらを注文してから、同一の日付に基づいてグループを作成することです. (注: 必要に応じて実際の関数名を使用していますが、これは疑似コードにすぎません。ギャップを自分で埋めるか、さらにヘルプが必要な場合は質問してください)
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];
それはあなたが始めるのに十分すぎるはずです.