I tried this code in the playground and it doesn't work. What is interesting - the fixed version. I was not expected this.
class SomeController: PresenterListener {
var presenter: Presenter? {
didSet { presenterUpdated() }
}
private func presenterUpdated() {
presenter?.listener = self
}
}
protocol PresenterListener: class {
}
protocol Presenter {
var listener: PresenterListener? { get set }
}
class SomePresenter: Presenter {
weak var listener: PresenterListener?
}
let controller = SomeController()
controller.presenter = SomePresenter()
print("✅")