2009-07-25 15 views
0

1対多の関係を持つマネージオブジェクトモデルAとBがあります。コアデータの1対多リレーションシップの正しいNSPredicate形式

この特定のタスクでは、Bとの関係を持つすべてのAオブジェクトを取得し、「string」に一致するプロパティで検索します。

私は@"ALL bObjects.bProperty MATCHES 'string'"を試していた、そしてそれがでobjc_exception_throwを引き起こした:問題のようです何

[NSSQLGenerator generateSQLStatementForFetchRequest:ignoreInheritance:countOnly:] 

誰でも正しい述語形式についてアドバイスできますか?

答えて

0

Predicate Programming Guideによれば、Core Data SQLストアからフェッチするときには、MATCHES演算子を使用できません。

matchesオペレータは、それは、メモリ内のフィルタリングでは動作しないが、そのコアデータのSQL store-でサポートされていない、regexを使用しています。あなたの述語の残りの部分については

、それは現在、bObjectsのセット全体があなたの入力文字列にマッチするbPropertyを持ってAオブジェクトを返します。

bObjectsセット内にオブジェクトがあるAオブジェクトを返す場合は、ANY演算子修飾子を使用します。

ANY bObjects.bProperty LIKE[cd] 'string' 
0

安全のために、私はLIKEにそれを変更しても、限界が、私はドキュメントを信じたいとはい同じくらい、私はSQLiteのためのMATCHESフェッチ要求を試みたが、それは仕事をしていることを指摘してくれてありがとう。

唯一問題となるのは、コアデータに対してこの述語を使用していて、関連オブジェクト(この場合は複数)に対するフェッチ要求とともに、一致を使用しない場合です。

私はdevforums.apple.comに投稿しましたが、それでもまだそれに答える人はいません。それはあまりにも危険で、間違いが何であるか分かりません。

関連する問題