ios - 向tableView中添加不同的继承对象

标签 ios swift uitableview inheritance realm

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

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

class Dog: Pet {
}

class Cat: Pet {
}

最佳答案

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

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

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 }

关于ios - 向tableView中添加不同的继承对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32821348/

相关文章:

ios - 以编程方式设置导航栏?

ios - 如何在 iPhone 上将按钮彼此靠近放置

ios - 使用部分将项目添加到 TableView

ios - 带有自定义单元格的 UITableView 为空

iphone - 用户启用安全登录时的 facebook 安全警告 - iPhone

ios - Rails "as_json"方法返回无效的 json?

ios - MFMailcomposeviewcontroller 发送按钮被禁用

ios - 将 tableView 装入其父 UIViewController

ios - 无法通过 AppDelegate 的标识符调用 Segue

ios - 使用 Kanna 解析 HTML