最近、コア データを使用するように iPhone アプリケーションを調整しました。いくつかの調査の後、NSPredicate がデータベース クエリを処理する最良の方法のように思われることがわかりました。特に、クエリは 4 つの個別の属性に基づいています。最初に、特定の郡名を持つすべてのエンティティについてデータベースにクエリを実行する必要があります。郡のプロパティ「アマドール」を持つすべてのエンティティを検索する場合、郡のプロパティとして「アマドールとビュート」を持つ可能性のあるエンティティを返す述語も必要です。次に、2 番目の条件も通過する郡条件を通過したエンティティのみを Predicate が返すようにする必要があります。第 3 に、commodity1 プロパティに文字列「none」が含まれている場合、次に述語は、文字列 "Gold" を探して商品 2 を検索する必要があります。その属性に「なし」が見つかった場合は、commodity3 プロパティに対して同じことを行う必要があります。このような複雑なクエリを実行する必要がないように、データベースを構築することはおそらく可能ですが、今のところ、これに対する解決策が必要です。
1 に答える
2
Apple のドキュメントの Predicate Programming GuideのPredicate Format String Syntax セクションには、述語で文字列比較に使用できる "LIKE" および "MATCHES" 演算子があると記載されています。
お気に入り
左側の式は右側の式と同じです: ? および * はワイルドカード文字として使用できます。は 1 文字に一致し、* は 0 文字以上に一致します。Mac OS X v10.4 では、ワイルドカード文字は改行文字と一致しません。
マッチ
左辺の式は、ICU v3 による正規表現スタイルの比較を使用して右辺の式と等しくなります (詳細については、ICU User Guide for Regular Expressions を参照してください)。
あなたの質問をよく理解できれば、これらの演算子が問題の解決に役立つかもしれません。
于 2011-01-28T17:12:21.167 に答える