RxSwift it is hard because of the sequence
RxSwift가 어려운 점은 Observable=Sequence 가 어려운 것이다
앞서 RxSwift는 비동기 이벤트들을 쉽게 관리해주는 도구라고 설명을 했다. Observable은 관찰이 가능하도록 일련의 순서로 넣어서 신호를 emit(방출)하는 것이 기본 원리이다.
그러면 Observable에 대한 간단한 생명주기를 알아보겠다
밑에 예시는 간단히 Observable을 단계별로 따로 구현해본 방법이다.
import UIKit
import RxSwift
//1. observable 선언 방법
let observable = Observable.just(1) //한 값만 받기
let observable2 = Observable.of(1,2,3) //여러 값 받기
let observable3 = Observable.of([1,2,3]) //이는 배열 통으로 받기
let observable4 = Observable.from([1,2,3,4,5]) // 배열만 받으며 배열 내의 한 값씩 return
//2. Observable 구독 방법
observable4.subscribe{event in
if let element = event.element{
print(element)
}
}
//2.1. Observable 구독 방법(onNext 활용)
let subscription4 = observable4.subscribe(onNext: {element in
print(element)
})
// 5. dispose 방법
subscription4.dispose()
밑에 예시는 한 번에 이어서 사용된 것이다. 첫 번째 예시는 주로 사용되는 예제이며 두번째는 하나씩 다 지정해줄 때 사용해주는 예시라고 보면 된다.
import UIKit
import RxSwift
let disposeBag = DisposeBag()
// 1. 첫번째 예시
Observable.of("A", "B", "C").subscribe{
print($0)
}.disposed(by: disposeBag)
//2. 두번째 예시
Observable<String>.create{
observer in
observer.onNext("A")
observer.onCompleted()
observer.onNext("?")
return Disposables.create()
}.subscribe(onNext: {print($0)}, onError: {print($0)}, onCompleted: {print("Completed")}, onDisposed: {print("Disposed")}).disposed(by: disposeBag)