2016-07-06 93 views
2

我正在使用Swift構建iOS應用程序。 我使用Realm作爲數據庫。如何構建Realm的查詢對象

我目前正在建立一個tableview的搜索功能。

這是我的篩選查詢

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

工作完美! –