refactor: replace unsafe withUnretained with weak self
This commit is contained in:
parent
3c9c7aa707
commit
cfe8190cec
|
|
@ -58,16 +58,14 @@ where ViewModel: BaseSearchViewModel<Item, ItemViewModel> {
|
|||
open override func bindViews() {
|
||||
super.bindViews()
|
||||
viewModel.itemsViewModelsDriver
|
||||
.withUnretained(self)
|
||||
.drive(onNext: { owner, viewModels in
|
||||
owner.handle(itemViewModels: viewModels)
|
||||
.drive(onNext: { [weak self] viewModels in
|
||||
self?.handle(itemViewModels: viewModels)
|
||||
})
|
||||
.disposed(by: disposeBag)
|
||||
|
||||
Observable.merge(searchResults, resetResults)
|
||||
.withUnretained(self)
|
||||
.subscribe(onNext: { owner, state in
|
||||
owner.handle(searchResultsState: state)
|
||||
.subscribe(onNext: { [weak self] state in
|
||||
self?.handle(searchResultsState: state)
|
||||
})
|
||||
.disposed(by: disposeBag)
|
||||
|
||||
|
|
@ -153,9 +151,8 @@ where ViewModel: BaseSearchViewModel<Item, ItemViewModel> {
|
|||
open var searchResults: Observable<SearchResultsViewControllerState> {
|
||||
viewModel.searchResultsDriver
|
||||
.asObservable()
|
||||
.withUnretained(self)
|
||||
.map { owner, viewModels -> SearchResultsViewControllerState in
|
||||
owner.stateForUpdate(with: viewModels)
|
||||
.compactMap { [weak self] viewModels in
|
||||
self?.stateForUpdate(with: viewModels)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -36,9 +36,8 @@ open class BaseSearchViewModel<Item, ItemViewModel>: GeneralDataLoadingViewModel
|
|||
|
||||
open var itemsViewModelsDriver: Driver<[ItemViewModel]> {
|
||||
loadingResultObservable
|
||||
.withUnretained(self)
|
||||
.map { owner, items in
|
||||
owner.viewModels(from: items)
|
||||
.map { [weak self] items in
|
||||
self?.viewModels(from: items)
|
||||
}
|
||||
.flatMap { Observable.from(optional: $0) }
|
||||
.share(replay: 1, scope: .forever)
|
||||
|
|
@ -55,9 +54,8 @@ open class BaseSearchViewModel<Item, ItemViewModel>: GeneralDataLoadingViewModel
|
|||
.flatMapLatest { [weak self] searchText, items -> Observable<ItemsList> in
|
||||
self?.search(by: searchText, from: items).asObservable() ?? .empty()
|
||||
}
|
||||
.withUnretained(self)
|
||||
.map { owner, items in
|
||||
owner.viewModels(from: items)
|
||||
.map { [weak self] items in
|
||||
self?.viewModels(from: items)
|
||||
}
|
||||
.flatMap { Observable.from(optional: $0) }
|
||||
.share(replay: 1, scope: .forever)
|
||||
|
|
|
|||
Loading…
Reference in New Issue