From 9a060ea10c6028c81c024f39796f320d64267059 Mon Sep 17 00:00:00 2001 From: Krunoslav Zaher Date: Tue, 29 Dec 2015 17:32:35 +0100 Subject: [PATCH] Adds `Equatable` constraint to `rx_value`. --- RxCocoa/iOS/UIControl+Rx.swift | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/RxCocoa/iOS/UIControl+Rx.swift b/RxCocoa/iOS/UIControl+Rx.swift index 27e568ad..9f79d12a 100644 --- a/RxCocoa/iOS/UIControl+Rx.swift +++ b/RxCocoa/iOS/UIControl+Rx.swift @@ -67,7 +67,7 @@ extension UIControl { return rx_controlEvent(controlEvents) } - func rx_value(getter getter: () -> T, setter: T -> Void) -> ControlProperty { + func rx_value(getter getter: () -> T, setter: T -> Void) -> ControlProperty { let source: Observable = Observable.create { [weak self] observer in guard let control = self else { observer.on(.Completed) @@ -83,7 +83,9 @@ extension UIControl { return AnonymousDisposable { controlTarget.dispose() } - }.takeUntil(rx_deallocated) + } + .distinctUntilChanged() + .takeUntil(rx_deallocated) return ControlProperty(values: source, valueSink: AnyObserver { event in MainScheduler.ensureExecutingOnScheduler()