我想要一个对象,它是多种不同类型 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/