【问题标题】:Can I have a heterogeneous collection in Realm Swift?我可以在 Realm Swift 中拥有异构集合吗?
【发布时间】:2017-04-11 17:59:08
【问题描述】:

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

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

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

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

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

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

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

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

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

【问题讨论】:

  • 我对领域了解不多,但如果它基于数据库表,那么不,可能不是。你到底想达到什么目的?
  • 我正在尝试列出一个流程中存在不同类型步骤的步骤。每种步骤存储不同的信息。
  • 这是一个很好的起点:stackoverflow.com/q/45621/3141234
  • 谢谢,我了解如何在基于表的数据库中执行此操作。我不清楚领域 基于表还是对象图数据存储,这在哪里是可能的。
  • 是的,我很想看看这个问题的答案

标签: swift realm


【解决方案1】:

List&lt;T&gt; 属性不能包含不同类型的对象。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多