我正在过滤我的数据库查询NSPredicate
直接在数据库上,但我想进一步过滤返回的值(Results<T>
) 带有自定义谓词:
elements.filter { (element) -> Bool in
return ...
}
这个返回一个LazyFilterBidirectionalCollection
- 我如何使用它并再次获得结果?
我们正在跟踪添加对基于块的谓词的支持GitHub 问题 #2138 https://github.com/realm/realm-cocoa/issues/2138。这将允许您在 Realm 内置原语支持的范围之外执行自定义过滤。
如果您有时需要与Results<T>
其他时候与LazyFilterBidirectionalCollection
您可以将值包装在类型擦除的包装器中,例如AnyBidirectionalCollection<T>
,它将任何操作转发到包装类型,同时隐藏底层集合。
例如:
func maybeFilter(results: Results<Foo>) -> AnyBidirectionalCollection<Foo> {
if (condition) {
return AnyBidirectionalCollection(results.filter { $0.foo != "bar" })
}
return AnyBidirectionalCollection(results)
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)