2

その関係の 1 つで最小数のエンティティを取得しようとしています。このエンティティは Solution と呼ばれ、Game オブジェクトにリンクする gamesFeaturedIn と呼ばれる対多の関係があります。だから私はこれをやっています(RestKit便利なメソッドを使って):

Solution* lowestPlayedSolution = [Solution findFirstWithPredicate: nil sortedBy: @"gamesFeaturedIn.@count" ascending: NO];
NSUInteger lowestPlayedCount = [lowestPlayedSolution.gamesFeaturedIn count];

これはエラーをスローします:

'KVC 集約を含むキーパスがありません。gamesFeaturedIn.@count' の処理に失敗しました

数年前に同様の質問を持ついくつかの投稿を見つけました。おそらく状況が変わっており、古い投稿では、すべてのオブジェクトをメモリにフェッチして手動で計算を実行せずにこれを行う方法について明確な答えが得られていません。誰?

編集: コア データ ストアは SQLite でサポートされているため、一時的なプロパティを使用して並べ替えることはできません。

4

2 に答える 2

1

悪いニュースをお伝えして申し訳ありませんが、少なくとも iOS5 では状況は変わっていません。ほとんどの場合、2 つの回避策がありますが、どちらもエレガントではありません。

  1. あなたが言及したものは、後でメモリ内でソートを行います。
  2. 非一時的なプロパティを作成してカウントを保存し、リレーションシップでアイテムを追加または削除するたびに更新します。
于 2012-06-20T09:11:09.123 に答える
0

一時属性 (relationshipCount) と、その関係のカウントを返すその属性のアクセサーを作成します。この属性でソートできるようになりました。

于 2012-06-20T07:38:26.693 に答える