如下所示,我有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 {
}
答案 0 :(得分:5)
领域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 }