尝试将 a 转换List<T>
为Results<T>
using时遇到问题RealmSwift
。我有一个函数通过多个过滤器运行一组结果并返回过滤后的结果。但是,此过程中的一个步骤需要进行一些计算,并且无法通过应用NSPredicate
过滤器来完成。因此,我创建了一个列表并将结果添加到满足条件的列表中。由于我需要返回一组结果,因此我将“TRUEPREDICATE”过滤器应用于列表。但是,我最终崩溃并显示错误消息,“只能在RLMArray
从RLMRealm
.
我已经看到这个问题出现在尚未添加到 a 的对象列表中Realm
,但这些是先前查询的结果,因此肯定已经保存到数据库中。
我的代码看起来像这样:
var results:Results<Object> = resultsOfSomeQuery
let list = List<Object>()
for result in results {
if result.matchesSomeCriteria {
list.append(result)
}
}
results = list.filter("TRUEPREDICATE")
如果有人能澄清这里发生了什么,将不胜感激。
你想要达到的目标是不可能的。
由于Results
是自动更新,它只能包含来自Realm
. 这就是为什么 Realmfilter
也只能在托管集合上调用。如果不将 Realm 保存filter
在Realm 中,则无法List
在手动创建的对象上使用Realm。
如果使用NSPredicate
s确实无法完成您需要进行的过滤,那么您需要求助于使用非更新集合。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句