Observable

class Observable<T>

<#Description#>

    • observer : 실제 관찰자 객체
    • block: 값이 변경될 때 실행될 클로저를 저장
    See more

    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 객체를 반환한다. 이를 통해 관찰자는 구독을 관리할 수 있습니다.