Создание дочернего протокола TestPresenterProtocol
расширения его определения и соответствия требованиям родительского протокола позволит вам создать класс, который соответствует дочернему протоколу, чтобы иметь требования только для дочернего протокола, а не родительского протокола . Единственное требование, которое необходимо для этого, - это то, что компилятор должен различать guish между свойствами. С таким же именем в данном случае interactor
сбивает компилятор с толку. Надеюсь, это поможет вам в какой-то мере.
protocol ViperInteractorProtocol { }
protocol TestInteractorProtocol: ViperInteractorProtocol { }
protocol ViperPresenterProtocol {
var interactor: ViperInteractorProtocol? { get set }
}
protocol TestPresenterProtocol: ViperPresenterProtocol {
var testInteractor: TestInteractorProtocol? { get set }
}
extension TestPresenterProtocol {
var interactor: ViperInteractorProtocol? {
set { interactor = newValue }
get { testInteractor }
}
}
class TestPresenter: TestPresenterProtocol {
var testInteractor: TestInteractorProtocol?
}