3

Appleの開発者サイトからサンプルのCoreDataBooksを変更しnum、エンティティに整数である属性を追加しましたBook

NSPredicate *predicate = [NSPredicate predicateWithFormat:"SUBQUERY(book, $b, $b.author == self.author).@min.num == self.num"];

これを使用してNSPredicate、要素のnumがすべての同じ著者の本の中で最小である本をフェッチしますが、次のエラーが発生します。

'NSInvalidArgumentException'、理由:'末尾のキーパスでサポートされていないKVC関数SUBQUERY(book、$ b、$ b.author == author)、@ min.num'

@maxサブクエリがをサポートしていないかどうか、@minまたは述語に何か問題があるかどうかを知りたいのですが。

4

1 に答える 1

0

SUBQUERYの結果は、すべてのコレクションキーパス演算子をサポートする必要があります。そうでない場合は、少なくともドキュメントでサポートされています。

エラーメッセージは、コード内の述語にコンマが含まれていることを示唆しているようです。フレームワークによって変更されているだけですか?

「@min」は数値を返します。あなたがそれから要求している「.num」キーは何ですか?ある種のカスタムプロパティ?カテゴリを通じてNSNumberでサポートされていますか?そうでなければ私はそれを認識しません。NSNumberオブジェクトをプリミティブCタイプなどに変換する必要はありません(また、変換しようとしないでください)。

次のようなことを試しましたか?

"self.num == SUBQUERY(book、$ b、$ b.author == self.author)。@ min"?

于 2012-12-04T00:52:25.683 に答える