From eee6abce6f090fa972095ea17e05fa17dd21f392 Mon Sep 17 00:00:00 2001 From: Meng Li Date: Fri, 11 Sep 2026 00:31:38 +0800 Subject: [PATCH 1/4] Use AnyObject for event binder protocol --- RxController/Classes/RxControllerEventBinder.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RxController/Classes/RxControllerEventBinder.swift b/RxController/Classes/RxControllerEventBinder.swift index 70debae..1b89030 100644 --- a/RxController/Classes/RxControllerEventBinder.swift +++ b/RxController/Classes/RxControllerEventBinder.swift @@ -26,7 +26,7 @@ import RxCocoa import RxSwift -public protocol RxControllerEventBinder: class { +public protocol RxControllerEventBinder: AnyObject { var events: PublishRelay { get } var parentEvents: PublishRelay { get } var disposeBag: DisposeBag { get } From 850de6c84bfd888db53b2a1ad2fd7fc0090e3e9e Mon Sep 17 00:00:00 2001 From: Meng Li Date: Fri, 11 Sep 2026 00:31:51 +0800 Subject: [PATCH 2/4] Use AnyObject for event router protocol --- RxController/Classes/RxControllerEventRouter.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RxController/Classes/RxControllerEventRouter.swift b/RxController/Classes/RxControllerEventRouter.swift index d8623bc..67e44f0 100644 --- a/RxController/Classes/RxControllerEventRouter.swift +++ b/RxController/Classes/RxControllerEventRouter.swift @@ -26,7 +26,7 @@ import RxCocoa import RxSwift -public protocol RxControllerEventRouter: class { +public protocol RxControllerEventRouter: AnyObject { var events: PublishRelay { get } var parentEvents: PublishRelay { get } var disposeBag: DisposeBag { get } From 942ca711ffb74cf287fa3fa10f60423e44d2d95b Mon Sep 17 00:00:00 2001 From: Meng Li Date: Fri, 11 Sep 2026 00:32:06 +0800 Subject: [PATCH 3/4] Use compactMap for unwrapped event values --- RxController/Classes/RxControllerEvent.swift | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/RxController/Classes/RxControllerEvent.swift b/RxController/Classes/RxControllerEvent.swift index 77c626b..8d758fe 100644 --- a/RxController/Classes/RxControllerEvent.swift +++ b/RxController/Classes/RxControllerEvent.swift @@ -65,9 +65,8 @@ extension ObservableType where Element == RxControllerEvent { } public func unwrappedValue(of identifier: RxControllerEvent.Identifier, type: T.Type = T.self) -> Observable { - return value(of: identifier) - .filter { $0 != nil } - .map { $0! } + return value(of: identifier, type: type) + .compactMap { $0 } } } From 634cc5d9450a71f898ee5c1ad745cd9a32380617 Mon Sep 17 00:00:00 2001 From: Meng Li Date: Fri, 11 Sep 2026 00:32:26 +0800 Subject: [PATCH 4/4] Qualify UIKit lifecycle selectors --- RxController/Classes/RxViewController.swift | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/RxController/Classes/RxViewController.swift b/RxController/Classes/RxViewController.swift index f58a817..fdd6b37 100644 --- a/RxController/Classes/RxViewController.swift +++ b/RxController/Classes/RxViewController.swift @@ -45,50 +45,50 @@ open class RxViewController: UIViewController, RxViewCon self.viewModel = viewModel super.init(nibName: nil, bundle: nil) - rx.methodInvoked(#selector(viewDidLoad)) + rx.methodInvoked(#selector(UIViewController.viewDidLoad)) .map { _ in } .bind(to: viewModel.viewDidLoadSubject) .disposed(by: disposeBag) - rx.methodInvoked(#selector(viewWillAppear(_:))) + rx.methodInvoked(#selector(UIViewController.viewWillAppear(_:))) .map { _ in } .bind(to: viewModel.viewWillAppearSubject) .disposed(by: disposeBag) - rx.methodInvoked(#selector(viewDidAppear)) + rx.methodInvoked(#selector(UIViewController.viewDidAppear(_:))) .map { _ in } .bind(to: viewModel.viewDidAppearSubject) .disposed(by: disposeBag) - rx.methodInvoked(#selector(viewWillDisappear(_:))) + rx.methodInvoked(#selector(UIViewController.viewWillDisappear(_:))) .map { _ in } .bind(to: viewModel.viewWillDisappearSubject) .disposed(by: disposeBag) - rx.methodInvoked(#selector(viewDidDisappear(_:))) + rx.methodInvoked(#selector(UIViewController.viewDidDisappear(_:))) .map { _ in } .bind(to: viewModel.viewDidDisappearSubject) .disposed(by: disposeBag) - rx.methodInvoked(#selector(viewWillLayoutSubviews)) + rx.methodInvoked(#selector(UIViewController.viewWillLayoutSubviews)) .map { _ in } .bind(to: viewModel.viewWillLayoutSubviewsSubject) .disposed(by: disposeBag) - rx.methodInvoked(#selector(viewDidLayoutSubviews)) + rx.methodInvoked(#selector(UIViewController.viewDidLayoutSubviews)) .map { _ in } .bind(to: viewModel.viewDidLayoutSubviewsSubject) .disposed(by: disposeBag) if #available(iOS 11.0, *) { - rx.methodInvoked(#selector(viewSafeAreaInsetsDidChange)) + rx.methodInvoked(#selector(UIViewController.viewSafeAreaInsetsDidChange)) .map { _ in } .bind(to: viewModel.viewSafeAreaInsetsDidChangeSubject) .disposed(by: disposeBag) } if #available(iOS 13.0, *) { - rx.methodInvoked(#selector(viewIsAppearing)) + rx.methodInvoked(#selector(UIViewController.viewIsAppearing(_:))) .map { _ in } .bind(to: viewModel.viewIsAppearingSubject) .disposed(by: disposeBag)