【发布时间】:2019-04-11 08:35:12
【问题描述】:
我在尝试使用 RealmSwift 将 List<T> 转换为 Results<T> 时遇到问题。我有一个函数通过多个过滤器运行一组结果并返回过滤后的结果。但是,此过程中的一个步骤需要进行一些计算,并且无法通过应用NSPredicate 过滤器来完成。因此,我创建一个列表并将结果添加到满足条件的列表中。由于我需要返回一组结果,因此我将“TRUEPREDICATE”过滤器应用于列表。但是,我最终遇到了错误消息,“此方法只能在从RLMRealm 检索到的RLMArray 实例上调用。”
我已经看到这个问题出现在尚未添加到Realm 的对象列表中,但这些是先前查询的结果,因此肯定已经保存到数据库中。
我的代码如下所示:
var results:Results<Object> = resultsOfSomeQuery
let list = List<Object>()
for result in results {
if result.matchesSomeCriteria {
list.append(result)
}
}
results = list.filter("TRUEPREDICATE")
如果有人能澄清这里发生了什么,将不胜感激。
【问题讨论】:
-
我在这里找到了您问题的答案:stackoverflow.com/questions/25888339/…
标签: ios swift realm predicate rlmarray