Swift ObjectMapper:从基础对象继承的对象的映射数组

Swift ObjectMapper:从基础对象继承的对象的映射数组,swift,objectmapper,Swift,Objectmapper,我有一个基本父对象,如下所示: class A: Mappable { var x: String! ... } 和它的两个孩子: class Child1: A { var y: Int! ... } class Child2: A { var z: String? } 所有这些都很好,但当我有一个对象,它表示从一个对象继承的对象数组时会发生什么,例如: class Wrapper: Mappable { var objcs: [A]? /

我有一个基本父对象,如下所示:

class A: Mappable {
    var x: String!
    ...
}
和它的两个孩子:

class Child1: A {
    var y: Int!
    ...
}

class Child2: A {
    var z: String?
}
所有这些都很好,但当我有一个对象,它表示从一个对象继承的对象数组时会发生什么,例如:

class Wrapper: Mappable {
    var objcs: [A]? // A will always be either Child1 or Child2, never A directly
}

我如何处理这种情况?(小细节,我也需要能够使用Obj-c的包装器,没有添加注释和NSObject继承以避免冗长)

我设法解决了这个问题,所以我把这个留给后代,以防有人遇到这个问题:


我必须实现一个定制TransformType(ObjectMapper库的协议),它接受
[Any]列表
并将它们独立转换为Child1或Child2,具体问题是什么?问题是库不会将包装中的对象识别为可能的Child1或ChildB类型,而是将它们全部转换为A。为什么会出现问题?这是标准的OO编程。查查继承和覆盖我想你不明白我的问题杰里米。我的问题不是缺乏OO编程方面的知识,而是缺乏在ObjectMapper中正确转换对象的钩子的知识。我为任何可能感兴趣的人添加了答案。如果你必须查看一个对象的内部以找出它是什么,那就是代码气味。您的设计可能需要重新审视。