検索キーに基づいてCoreDataからオブジェクトを検索して取得する必要があります。 私のコアデータオブジェクトにはnames
という文字列プロパティが含まれています。ユーザーは、私が欲しい "ジェームスのみmanagedObject1、managedObject2とmanagedObject3で鍵を検索するときのようには正確な部分文字列を使用したフィルタ文字列
managedObject1.names = "James,James Willson,Willson James,James Camaroon"
managedObject2.names = "James Willson,James,Willson James,James Camaroon"
managedObject3.names = "James Camaroon,James Willson,Willson James,James"
managedObject4.names = "James Willson,Willson James,James Camaroon"
を次のように私の要件があります。
NSPredicate(format: "names contains[d] %@", name)
を試しましたが、managedObject4も返されました。
このための述語を書くには?
うん!それは部分文字列として 'James'を持っているからです。述語は常にそのオブジェクトを返します。なぜオブジェクト4は必要ないのですか? –
おそらくすべての管理対象オブジェクトを取得し、swiftの 'filter'メソッドを使うべきでしょう。より柔軟で高速です。 – Sweeper
@ Sweeper:フェッチ要求でのNSPredicateによるフィルタリングは、SQliteレベルで行われ、一致するオブジェクトのみをメモリにロードするという利点があります。 –