2015-09-27 2 views
1

Как вы видите ниже, у меня есть 2 подкласса Realm Dog и Cag, которые содержат различное количество объектов. Я хочу получить эти объекты и добавить их вместе в один массив, поэтому я могу запустить sortPetByDate. Однако я не могу appendTheContentOf, в связи с тем, чтоОбъединение объектов наследования объектов вместе

let cat = realm.objects(Cat) 
let dog = realm.objects(Dog) 

возвращается Results<t>.

Каков наилучший способ запуска этого метода для нескольких объектов наследования?

func sortPetByDate(array:[AnyObject]) -> [AnyObject]  { 
    return array.sort{ ($0.0 as! Pet).date.compare(($0.1 as! Pet).date) == NSComparisonResult.OrderedAscending } 
} 

Пример моих классов наследования:

class Pet: Object { 
    dynamic var date = NSDate() 
    dynamic var title = String() 
} 

class Dog: Pet { 
} 

class Cat: Pet { 
} 

ответ

5

Realm doesn't support polymorphic queries yet.

Так что вам нужно будет запросить для обоих типов объектов по отдельности.

let cat = realm.objects(Cat) 
let dog = realm.objects(Dog) 

В зависимости от вашего потребительной случае, вы могли бы просто вытащить их все в памяти и добавить их как в массив [Object], а затем просто отсортировать этот массив. Это будет выглядеть следующим образом:

var pets = [Object]() 
pets += dogs.map { $0 as Pet } 
pets += cats.map { $0 as Pet } 
var sortedPets = pets.sort { $0.date.compare($1.date) == .OrderedAscending } 
Смежные вопросы