У меня возникла проблема при попытке преобразовать List<T>
в Results<T>
с помощью RealmSwift
.У меня есть функция, которая запускает набор результатов через несколько фильтров и возвращает отфильтрованные результаты.Однако один шаг в этом процессе требует некоторых вычислений и не может быть выполнен с применением фильтра NSPredicate
.Я, таким образом, создаю список и добавляю результаты в список, которые соответствуют критериям.Поскольку мне нужно вернуть набор результатов, я применяю фильтр «TRUEPREDICATE» к списку.Тем не менее, я получаю аварийное завершение с сообщением об ошибке: «Этот метод можно вызывать только на RLMArray
экземплярах, извлеченных из RLMRealm
.»
Я видел эту проблему в списках объектов, которыееще не были добавлены в Realm
, но это результаты предыдущего запроса, и, следовательно, определенно уже были сохранены в базе данных.
Мой код выглядит примерно так:
var results:Results<Object> = resultsOfSomeQuery
let list = List<Object>()
for result in results {
if result.matchesSomeCriteria {
list.append(result)
}
}
results = list.filter("TRUEPREDICATE")
Если кто-нибудь сможет прояснить, что здесь происходит, это будет с благодарностью.