ObjectMapper - 在子 class 中初始化一个空的 init

ObjectMapper - Initialize an empty init in child class

我有一个名为 "Base" 的基础 class,它实现了 Mappable 协议。我已经按照下面的描述对 class 进行了子class。

class Base: Mappable {
    var base: String?

    required init?(map: Map) {

    }

    func mapping(map: Map) {
        base <- map["base"]
    }
}

class Subclass: Base {
    var sub: String?

    required init?(map: Map) {
        super.init(map: map))
    }

    override func mapping(map: Map) {
        super.mapping(map: map)

        sub <- map["sub"]
    }
}

是否可以在 subclass 中创建一个空的 init,我如何才能像这样创建一个 subclass 的实例?

var obj = Subclass()

您可以在 Base 中添加 init(),在 SubClass

中添加 override init()
class Base: Mappable {
    var base: String?

    init() {}

    required init?(map: Map) {

    }

    func mapping(map: Map) {
        base <- map["base"]
    }
}

class Subclass: Base {
    var sub: String?

    override init() {
        super.init()
    }

    required init?(map: Map) {
        fatalError("init(map:) has not been implemented")
    }

    override func mapping(map: Map) {
        super.mapping(map: map)

        sub <- map["sub"]
    }
}