Как преобразовать список RealmSwift в результаты?
Я использую Царство List/Results
в качестве моего источника данных для UITableView
, В какой-то момент я назначаю ему список. лайк:
var dataSource:List<SomeObject>! // Or >> Results<SomeObject>!
let aRealmObject = realm.objectForPrimaryKey(SomeObject.self, key: objectId)
dataSource = aRealmObject.someList // dataSource should be List
Тогда у меня есть фильтр в этом списке. Если пользователь изменил даты фильтра, я делаю так:
dataSource = dataSource.filter("FILTER THE DATES",newDates) // dataSource should be Results
Но строка выше вызывает ошибку в качестве типа возврата filter
это Results
объект и aRealmObject.someList
список
Как лучше всего справиться с этой ситуацией?
- сделать источник данных как
List
и преобразоватьResults
ВозражатьList
? Как?? - сделать источник данных как
Results
и преобразоватьList
вResults
? Как?? - Или, может быть, у вас есть лучший способ сделать это, пожалуйста, поделитесь им со мной.
Спасибо,
2 ответа
Решение
И то и другое List
а также Results
(так же как LinkingObjects
) может быть преобразован в AnyRealmCollection
тип. Я думаю, что это, вероятно, лучший способ стандартизировать все типы массивов в Realm:
var dataSource:AnyRealmCollection!
let aRealmObject = realm.objectForPrimaryKey(SomeObject.self, key: objectId)
dataSource = AnyRealmCollection(aRealmObject.someList)
Я нашел простой способ конвертировать List
в Results
используя метод фильтра, он всегда возвращает Results
объект. Просто дал ему истинный предикат.
dataSource = aRealmObject.someList.filter("TRUEPREDICATE") //this is a Results object.