ObjectMapper - инициализация пустой инициализации в дочернем классе - PullRequest
0 голосов
/ 22 октября 2019

У меня есть базовый класс под названием «Base», который реализует протокол Mappable. Я уже подклассифицировал этот класс, как описано ниже.

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"]
    }
}

Можно ли создать пустой init в подклассе, как я могу создать экземпляр подкласса, как этот?

var obj = Subclass()

1 Ответ

1 голос
/ 22 октября 2019

Вы можете добавить init() внутри вашего Base и override init() внутри вашего SubClass

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"]
    }
}
...