Использовать тип Self в переопределениях - PullRequest
2 голосов
/ 15 марта 2019

Я хотел бы иметь инициализатор, который будет использовать параметр типа, которым является его текущий класс.Лучше показать на примере:

class A {
    let finishBlock: @escaping (_ parameter: A) -> Void
    init(finishBlock: (_ parameter: A) -> Void) {
        self.finishBlock = finishBlock
    }
}

class B: A {}

И теперь я хотел бы иметь автоматический init для B, в котором finishBlock будет использовать параметр: B

Так что-то вроде:

init(finishBlock: @escaping (_ parameter: Self) -> Void) {}

Этого можно достичь?Я не хочу писать новый init для каждого подкласса, потому что я работаю над фреймворком, который содержит базовый класс, который будет делиться на подклассы, как это часто бывает, поэтому я хотел бы иметь такой тип поведения.

...