1. Driver

- 출력 Steam에서 UI를 만져야하는 경우 ObserveOn을 사용해서 MainThread로 변경해야하는데 이를 간단하게 줄여주는 데에 사용

- 따라서 API에서 Driver를 반환하는 경우에는 UI를 수정하는 것으로 생각하고 MainThread에서 호출해도 되겠구나 생각하면 됨

 

2. Unfinished Observable

- UI 객체에 만들어둔 subscribe는 complted가 되지 않고 동작하지 않을 때는 대기하며 유지된다.

- 만약 여기서 self요소를 쓰게 된다면 referenced count가 증가되고 네비게이션컨트롤러에 의해 화면이 전환되어도 해제되지 않는다.

- 이럴경우 DisPoseBag도 사라지지 않게 되어 메모리 릭이 발생한다

 

1) 해결방법 (1)

- weak를 사용해서 참조되지 않을 때 자연스럽게 사라질 수 있도록 구현한다.

idValid.subscribe(onNext: { [weak self] in self?.idValidView.isHidden = $0})
            .disposed(by: disposeBag)

 

 

2) 해결방법 (2)

- viewWillDisappear에서 disposeBag을 초기화해준다.

    override func viewWillDisappear(_ animated: Bool) {
        disposeBag = DisposeBag()
    }

+ Recent posts