RxCocoa 에 정의되어 있는 클래스
질문: Relay 란? (대답해보기)
Subject 를 래핑한 클래스
- Subject 와는 다르게
next 이벤트만 전달받고, next 이벤트만 전달한다.
- error 와 completed 이벤트는 받지도 않고, 전달하지도 않는다
- error 나 completed 가 전달되면 구독이 종료되어서 더이상 UI 바인딩이 일어나지 않기 때문이다.
- 따라서 구독자가 직접 dispose 하지 않으면 자원이 정리되지 않는다.
- UI 작업에 사용한다.
PublishRelay
Behavior Relay
Behavior Subject 와 같이 생성시에 값 하나를 받고, 이것이 첫번째 이벤트가 된다.
accept 를 통해 이벤트를 전달받으면 그 이벤트를 전달하게됨
- Behavior Subject 와 동작방식이 동일함
value 속성을 통해 릴레이가 가지고 있는 값을 읽을 수 있다
참고자료
RxSwift: Reactive Programming with Swift, Chapter 3: Subjects
요거 들어보아야함
Subject/Relay를 언제써야할지 모르겠다구요?