Core Data-Manyリレーションシップを使用する場合、Parent
エンティティのNSSortDescriptor
エンティティを使用してフェッチ要求をソートするのは非常に難しい番号children
は、Child
エンティティと1対多の関係にあります。これは、NSFetchedResultsController
と組み合わせて特に便利です。通常通りソート記述子を初期化:NSSortDescriptorでCore Data To Manyリレーションシップの項目数でソート
NSSortDescriptor *sortByNumberOfChildren = [[NSSortDescriptor alloc] initWithKey:@"[email protected]" ascending:NO];
例外で結果'Keypath containing KVC aggregate where there shouldn't be one; failed to handle [email protected]
のiOS 6.1で、私は整数としての私の管理オブジェクトモデルへの属性としてKVOアクセサ-countOf<Key>
を追加することで修正を発見しましたタイプ。私はNSManagedObject
サブクラスでこの属性のために何も実装していませんでした。すべての魔法がフードの下で起こっているようです。 (https://stackoverflow.com/a/15546371/2042527参照)。
ただし、これはiOS 6.0では機能しません。追加
- (NSUInteger)countOfChildren{
return [self.children count];
}
両方がは両方のSDKで問題が解決しない:ここで私はあなたのNSManagedObject
サブクラスに次のメソッドを追加しても問題が解決されることを発見しました。それどころか、それは修正を破る。
iOS 6.0とiOS 6.1の間でCore DataまたはFoundationの変更についての記載はありませんが、なぜこのようなことが起こっているのか、両方に違いがあるのかを知っている人はいませんか。
これを 'NSManagedObjectModel'に追加しましたか?たとえそれがコンパイルされていても動作させることはできません。 'NSManagedObjectModel'は他のクラスとの関係はありません。 –
申し訳ありませんが、私の悪い、私は 'NSManagedObject'サブクラスも2回目を意味します。私は間違いを訂正しました。 –
あなたの正確な問題に対する解決策ではなく、それに関する別の見解:どのように子供を引き出し、別個の親の数を数えるのですか?たぶん、この[投稿](http://stackoverflow.com/questions/9157436/distinct-count-via-core-data-nsexpression-into-nsfetchedresultscontroller)が役立ちます。 – Paul