Как преобразовать список 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.
Другие вопросы по тегам