【问题标题】:Add different inheritance objects into tableView在tableView中添加不同的继承对象
【发布时间】:2015-09-28 10:58:47
【问题描述】:

我在 Realm 中创建了一个 SuperClass 和两个子类。然后我在CatDogclasses 中创建了多个对象。我的问题是检索这些对象并将它们添加到 tableView 的最佳解决方案是什么。所有应该放在 tableView 中的信息都来自 SuperClass?我需要单独检索DogCat并合并这些数组吗?如果是,那我该怎么做?或者在这种情况下最好的解决方案是什么?

class Pet: Object {
    var myDate = NSDate()
    var title = ""
    var subTitle = ""
}

class Dog: Pet {
}

class Cat: Pet {
}

【问题讨论】:

标签: ios swift uitableview inheritance realm


【解决方案1】:

领域doesn't support polymorphic queries yet。所以不能查询realm.objects(Pet)。但是Results 的每个对象都可以添加到一个数组中,其元素类型是超类。

因此您需要分别查询这两种对象类型。

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 }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-02
    • 2019-01-19
    • 2015-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多