4
пример:Безопасно ли использовать [unowned self] в драйверах RxSwift?
tapGestureRecognizer.rx.event.asDriver()
.drive(onNext: { [unowned self] _ in
self.view.endEditing(true)
})
.disposed(by: disposeBag)
поскольку disposeBag
управляется самостоятельно, я бы предположить, да?
Можете ли вы объяснить, почему? – Szu
Потому что, когда объект 'self' указывает на то, что он будет разыменован, это момент времени, когда объект освобождается, и, следовательно, его свойство disposeBag. Когда «disposeBag» будет освобожден, все его одноразовые предметы будут удалены, что означает, что все его подписки не подписаны. Таким образом, время жизни подписки 'drive (onNext:)' привязано к времени жизни 'self'. Это означает, что закрытие не будет выполнено в аварийном случае. – ctietze