반응형
안녕하세요.
KataRN입니다.
오늘은 RxCocoa에 대해 알아보겠습니다.
1. Binder<Value>
- UI Binding에 사용.
- Error 이벤트 받지 않음.
- Main Thread에서 실행되는 것을 보장.
- .bind(to: ): 생성자(Observable) -> 수신자(Binder)
- 같은 처리지만 bind를 사용하면 훨씬 간결하다.
textField.rx.text
.observe(on: MainScheduler.instance)
.subscribe(onNext: {
label.text = $0
})
.disposed(by: disposeBag)
textField.rx.text
.bind(to: label.rx.text)
.disposed(by: disposeBag)
2. Driver<Element>
- Error 이벤트 받지 않음.
- Main Thread에서 실행되는 것을 보장.
- 스트림 공유가 가능.
- 초기값 || 최신값 replay.
3. Singnal<Element>
- Error 이벤트 받지 않음.
- Main Thread에서 실행되는 것을 보장.
- 구독한 이후에 발생하는 값 전달.
4. extension Reactive where Base: T {}
- RxCocoa에서 기본적인 기능들을 제공하지만 제공하지 않는 기능들도 있다.
- 직접 구현할 경우의 예제
extension Reactive where Base: UIView {
var sizeToFit: Binder<Void> {
return Binder(base) { base, _ in
base.sizeToFit()
}
}
}
Driver.just(Void())
.drive(button.rx.sizeToFit)
.disposed(by: disposeBag)
오늘도 읽어주셔서 감사합니다.
반응형