我可以在Swift领域拥有一个异构集合吗?

我可以在Swift领域拥有一个异构集合吗?,swift,realm,Swift,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 One: Object {
    dynamic var name = ""
}

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

public class Listing: Object {
    let onesAndTwos = List<Object>()
}
公共类一:对象{
动态变量名称=“”
}
公共类二:对象{
动态变量标签=“”
}
公共类列表:对象{
设onesandtows=List()
}
有没有一种优雅的方法可以做到这一点

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

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

public class Listing: Object {
    let onesAndTwos = List<OneOrTwo>()
}
公共类一或二:对象{
动态变量一:一?
动态变量二:二?
}
公共类列表:对象{
设onesandtows=List()
}
但如果可能的话,我希望避免这种间接性。

List
属性不能包含不同类型的对象

请在和的文档中了解更多信息,这应该可以解释为什么不可能


因此,我建议您使用组合而不是继承,基本上与您在文章中提到的方法相同。

我对realm了解不多,但如果它基于数据库表,那么不,可能不会。你到底想实现什么?我想列出一个流程中的步骤列表,其中有不同类型的步骤。每种步骤都存储不同的信息。这是一个很好的起点:谢谢,我了解如何在基于表的数据库中执行此操作。我不清楚realm是基于表的,还是一个对象图数据存储,这是可能的。是的,我想看看这个问题的答案