2016-07-06 21 views
2

私はSwiftを使用してiOSアプリケーションを構築しています。 私はデータベースとしてレルムを使用しています。Realmのクエリオブジェクトを構築する方法

現在、私はテーブルビューの検索機能を構築しています。

これは、私は、ユーザーがフィルターと呼ばれる別のモデルにフィルタを適用したいと述べ何を保存しています私のフィルタクエリ

items = realm.objects(Book).filter(predicate).filter("state IN {'pending','activated','completed','closed'}") 

です。

次のフィルタクエリ(titleは属性)の出力からこの{'pending'、 'activated'、 'completed'、 'closed'}をどのように構築できますか?このオブジェクトは何と呼ばれていますか?

realm.objects(Filter).filter("type = 'filter' AND activated = 'true'") 

答えて

3

IN演算子の右側はで置換NSArray(またはその他の列挙オブジェクト)を持つことができる置換プレースホルダを(%@)を取ることができ

あなたFilterモデルを仮定ようになります。:

あなたは後にしているクエリを作成するには、以下のような何かができ
class Filter: Object { 
    dynamic var type: String = "" 
    dynamic var activated: bool = false 
    dynamic var state: String = "" 
} 

let activeFilters = realm.objects(Filter).filter("type = 'filter' AND activated = 'true'") 
let activeStates = activeFilters.valueForKey("state") as! [String]! 

let items = realm.objects(Book).filter(predicate).filter("state IN %@", activeStates) 
+0

完璧に作業しました! –

関連する問題