2011-10-20 24 views
4

多対多の子を持つ親エンティティがあります。プロパティ(名前など)で親フェッチを注文すると、すべて正常に動作します。しかし、私はこれを試してみると:多対多の関係を持つNSSortDescriptor

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"[email protected]" ascending:NO]; 

それは動作しません。私も追加しようとしました

[fetchRequest setRelationshipKeyPathsForPrefetching:[NSArray arrayWithObject:[entityProperties objectForKey:@"child"]]]; 

しかし、うまくいきませんでした。

私はto-many @ countで並べ替えることができますか?子供を追加するたびにプロパティを追加して更新する必要がありますか?

答えて

8

sqliteストアを使用していると仮定します。 は「オブジェクト」レベルで解決されるため、NSFetchRequestNSSortDescriptorはデータベースレベルで解決されるため、ソートすることはできません。したがって、あなたが推測したように、並べ替えるためのカウントプロパティを作成する必要があります。

バイナリまたはメモリ内のストアタイプを使用している場合、カウントはオブジェクトとしてのみアクセスされるため、正常に動作するはずです。

+0

ありがとうございます。私は混乱していました。なぜなら、あなたがここで答えたとおりに可能だったように聞こえました。http://stackoverflow.com/questions/2448252/core-data-nsfetchrequest-sorting-by-count-of-to-many-relationship – Adriana