CoreData Orded の処理
CoreData をいじっていたら、Orderd というチェックボックスがあることに気づいた。
名前からして、n 側の並び順を維持してくれるんじゃないかと期待が高まります。早速使ってみたら error 発生。なんで?
通常、n の record を取り出すには、array に突っ込みます。こんな感じで。
NSArray* relatedRecords = [_detailItem.toRelateMany allObjects];
でも、並び順を維持するには、array ではダメで、NSOrderdSet を使う必要があるのだ。
NSOrderedSet* relatedRecords = [[NSMutableOrderedSet alloc]initWithOrderedSet:_detailItem.toRelateMany];
それはよいのですが、class が違うので中身を取り出す時の method も、違う点を見逃してはならない。array の時は allObjects、orderedSet の時は initWithOrderedSet: となる。
ふぅぅ。