2

コア データ モデルに 2 つのエンティティがあります。著者と本。著者は多くの本を持つことができます。これは私が整理した部分です。それはすべて機能しています。

ここで、著者をアルファベット順に取得したいと思います。

NSEntityDescription *entity = [NSEntityDescription entityForName:@"Author" inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES];
NSArray *sortDescriptors = @[sortDescriptor];
[fetchRequest setSortDescriptors:sortDescriptors];

これまでのところ問題はありません。しかし今、私はすべての著者の本をリリース日順に取得したいと考えています。次のコード行を使用して著者の本を取得すると…</p>

self.selectedAuthor.books.allObjects

… 本の順番は完全にランダムのようです。

私の質問:

オブジェクトの関連エンティティをコア データから取得するときに、オブジェクトの関連エンティティを並べ替えるにはどうすればよいself.selectedAuthor.books.allObjectsですか?

4

2 に答える 2

1

メソッドを Author クラス インターフェイスに追加- (NSArray *)booksSortedByDate;し、実装で次のようなコードを記述できます。

- (NSArray *)booksSortedByDate {
    return [self.books.allObjects sortedArrayUsingDescriptors:@[[NSSortDescriptor sortDescriptorWithKey:@"releaseDate" ascending:YES]]];
}
于 2013-10-22T06:58:16.727 に答える