diff --git a/Cartfile.resolved b/Cartfile.resolved index b941224c..2df82d97 100644 --- a/Cartfile.resolved +++ b/Cartfile.resolved @@ -1,7 +1,7 @@ -github "Alamofire/Alamofire" "5.4.1" -github "ReactiveX/RxSwift" "6.0.0" -github "RxSwiftCommunity/RxAlamofire" "v6.1.1" +github "Alamofire/Alamofire" "5.4.3" +github "ReactiveX/RxSwift" "6.2.0" +github "RxSwiftCommunity/RxAlamofire" "v6.1.2" github "SnapKit/SnapKit" "5.0.1" github "TouchInstinct/TableKit" "2.10008.1" github "malcommac/SwiftDate" "6.3.1" -github "pronebird/UIScrollView-InfiniteScroll" "1.1.0" +github "pronebird/UIScrollView-InfiniteScroll" "1.2.0" diff --git a/Sources/Classes/Search/BaseSearchViewController.swift b/Sources/Classes/Search/BaseSearchViewController.swift index bc2cab11..44e1900c 100644 --- a/Sources/Classes/Search/BaseSearchViewController.swift +++ b/Sources/Classes/Search/BaseSearchViewController.swift @@ -58,17 +58,15 @@ where ViewModel: BaseSearchViewModel { open override func bindViews() { super.bindViews() viewModel.itemsViewModelsDriver - .withUnretained(self) - .drive(onNext: { owner, viewModels in - owner.handle(itemViewModels: viewModels) - }) + .drive(with: self) { base, viewModels in + base.handle(itemViewModels: viewModels) + } .disposed(by: disposeBag) Observable.merge(searchResults, resetResults) - .withUnretained(self) - .subscribe(onNext: { owner, state in - owner.handle(searchResultsState: state) - }) + .subscribe(with: self) { base, state in + base.handle(searchResultsState: state) + } .disposed(by: disposeBag) let searchText = searchController.searchBar.rx.text @@ -153,9 +151,8 @@ where ViewModel: BaseSearchViewModel { open var searchResults: Observable { viewModel.searchResultsDriver .asObservable() - .withUnretained(self) - .map { owner, viewModels -> SearchResultsViewControllerState in - owner.stateForUpdate(with: viewModels) + .compactMap { [weak self] viewModels -> SearchResultsViewControllerState? in + self?.stateForUpdate(with: viewModels) } } diff --git a/Sources/Classes/Search/BaseSearchViewModel.swift b/Sources/Classes/Search/BaseSearchViewModel.swift index 224f4ed9..5778c186 100644 --- a/Sources/Classes/Search/BaseSearchViewModel.swift +++ b/Sources/Classes/Search/BaseSearchViewModel.swift @@ -36,9 +36,8 @@ open class BaseSearchViewModel: 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: GeneralDataLoadingViewModel .flatMapLatest { [weak self] searchText, items -> Observable in self?.search(by: searchText, from: items).asObservable() ?? .empty() } - .withUnretained(self) - .map { owner, items in - owner.viewModels(from: items) + .compactMap { [weak self] items in + self?.viewModels(from: items) } .flatMap { Observable.from(optional: $0) } .share(replay: 1, scope: .forever)