2016-05-12 7 views
6

Używam domeny Realm List/Results jako mojego źródła danych dla UITableView. W pewnym momencie przypisuję do niego listę. jak:jak przekonwertować listę RealmSwift do wyników?

var dataSource:List<SomeObject>! // Or >> Results<SomeObject>! 
let aRealmObject = realm.objectForPrimaryKey(SomeObject.self, key: objectId) 
dataSource = aRealmObject.someList // dataSource should be List 

Wtedy mam filtr na tej liście Jeśli użytkownik zmienił daty filtrów, robię tak:

dataSource = dataSource.filter("FILTER THE DATES",newDates) // dataSource should be Results 

Ale przede linia powoduje błąd jako typ zwracanej filter jest obiektem Results, a aRealmObject.someList jest listą.

Jaki jest najlepszy sposób na rozwiązanie tej sytuacji?

  • make DataSource jako List i konwertować obiekt Results do List? W jaki sposób??
  • utworzyć DataSource jako Results i przekonwertować List na Results? W jaki sposób??
  • A może masz lepszy sposób robienia tego, proszę podziel się nim ze mną.

Dzięki

Odpowiedz

4

Zarówno List i Results (jak również LinkingObjects) może być przekształcona w rodzaju AnyRealmCollection. Myślę, że to prawdopodobnie najlepszy sposób na standaryzację wszystkich typów macierzy Realm:

var dataSource:AnyRealmCollection! 
let aRealmObject = realm.objectForPrimaryKey(SomeObject.self, key: objectId) 
dataSource = AnyRealmCollection(aRealmObject.someList) 
6

znalazłem prosty sposób konwertować List do Results wykorzystanie jeśli metoda filtr, to zawsze wraca Results obiekt. Właśnie dałem mu prawdziwy predykat.

dataSource = aRealmObject.someList.filter("TRUEPREDICATE") //this is a Results object.