Observable
class Observable<T>
<#Description#>
-
- observer : 실제 관찰자 객체
- block: 값이 변경될 때 실행될 클로저를 저장
Declaration
Swift
struct Observer<V>
-
- 모든 observers를 저장하는 배열
Declaration
Swift
private var observers: [Observable<T>.Observer<T>]
-
- 실제 관찰되는 값
- 값이 설정될 때마다 ‘didSet'에서 'notifyObservers’ 메서드를 호출하여 모든 observer에게 알린다.
Declaration
Swift
var value: T { get set }
-
Declaration
Swift
init(_ value: T)
-
Declaration
Swift
deinit
-
observer를 추가한다. 추가될 때 현재 값에 대한 알림도 바로 전달한다.
Declaration
Swift
@discardableResult fileprivate func observe( on observer: AnyObject, observerBlock: @escaping (ObservableEvent<T>) -> Void ) -> Observable<T>
-
모든 observers에게 값을 알린다
Declaration
Swift
private func notifyObservers(event: ObservableEvent<T>)
-
Declaration
Swift
fileprivate func removeDisposable(for observer: AnyObject) -> () -> Void
-
리스트 안에 있는 특정 관찰자를 제거합니다.
- 해당 함수는 removeDisposable를 통해서만 호출됩니다.
Declaration
Swift
private func remove(observer: AnyObject)
Parameters
observer
제거하고자 하는 관찰자 객체
-
구독을 시작하고 관찰자에게 이벤트를 전달합니다.
Declaration
Swift
func subscribe( on observer: AnyObject, disposeBag: DisposeBag, onNext: ((T) -> Void)? = nil, onError: ((Error) -> Void)? = nil, onCompleted: (() -> Void)? = nil ) -> Subscription<T>
Parameters
observer
이벤트를 받을 관찰자 객체
disposeBag
관찰자가 더 이상 필요하지 않을 때 관찰자를 제거하기 위한 객체
onNext
값이 변경될 때마다 실행될 클로저
onError
오류가 발생했을 때 실행될 클로저
onCompleted
관찰이 완료되었을 때 실행될 클로저
Return Value
Subscription 객체를 반환한다. 이를 통해 관찰자는 구독을 관리할 수 있습니다.