swift - 我可以在 Realm Swift 中拥有异构集合吗?

标签 swift realm

我想要一个对象,它是多种不同类型 Realm 对象的有序集合,就像这样......

public class One: Object {
    dynamic var name = ""
}

public class Two: Object {
    dynamic var label = ""
}

public class Listing: Object {
    let onesAndTwos = List<Object>()
}

有没有一种优雅的方式来做到这一点?

我知道我可以添加一个类似枚举的包装对象...

public class OneOrTwo: Object {
    dynamic var one: One?
    dynamic var two: Two?
}

public class Listing: Object {
    let onesAndTwos = List<OneOrTwo>()
}

但如果可能的话,我想避免这种间接的方式。

最佳答案

List<T>属性不能包含不同类型的对象。

请在 https://realm.io/docs/swift/latest/#relationships 的文档中了解更多信息和 https://realm.io/docs/swift/latest/#model-inheritance ,这应该可以解释为什么这是不可能的。

所以我建议您使用组合而不是继承,基本上与您在帖子中提到的方式相同。

关于swift - 我可以在 Realm Swift 中拥有异构集合吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43313674/

相关文章:

ios - 查询包含字符串值列表的几个字段(Realm Swift)

ios - 如何在ios应用程序中创建多列表

ios - 如何让我的两个音频播放器同时播放两首不同的歌曲?

swift - 隐式设置关联类型

swift - 如何快速将 SQLite 数据库转换为 Realm 数据库

ios - RealmSwift - 开始/提交写入

swift - 单击键盘中的返回键时 UITextField 如何移动到下一个 TextField

swift 。如何删除 AVPlayerViewController 中的工具栏

ios - 多个 ViewController 中的 Realm Swift 过滤器

ios - Realm 迁移一对多