我正在使用 Swift 构建一个 iOS 应用程序。 我使用 Realm 作为数据库。
我目前正在为表格 View 构建搜索功能。
这是我的过滤器查询
items = realm.objects(Book).filter(predicate).filter("state IN {'pending','activated','completed','closed'}")
我正在将用户想要过滤的状态保存在另一个名为 Filter 的模型中。
如何根据以下过滤器查询的输出构建此 {'pending','activated','completed','filled'} (标题是属性)?这个对象叫什么?
realm.objects(Filter).filter("type = 'filter' AND activated = 'true'")
最佳答案
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)
关于swift - 如何为 Realm 构建查询对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38228755/