letdisposeBag=DisposeBag()// 自動unsubscribeのために必要letarray:[Int]=[1,2,3,4,5]letvariable=Variable(array)variable.asObservable.subscribe{(event)inprint("Event is \(event)")}.addDisposableTo(disposeBag)variable.value=[6,7,8]// 結果は下記です。EventisNext([1,2,3,4,5])EventisNext([6,7,8])EventisCompleted
create
0からObservable型のデータを生成するためのオペレータです。
123456789101112131415161718
letdisposeBag=DisposeBag()// 自動unsubscribeのために必要letsource=Observable.create{(observer:AnyObserver<Int>)->Disposableinobserver.onNext(1)observer.onCompleted()returnAnonymousDisposable{print("Disposed")}}source.subscribeNext{(elem)inprint("Event is \(elem)")}.addDisposableTo(disposeBag)// 結果は下記ですEventis1Disposed
deferred
SubscribeされたタイミングでObservable型のデータを生成するオペレータです。
1234567891011
letdisposeBag=DisposeBag()// 自動unsubscribeのために必要letsource=Observable.deferred{()->Observable<Int>inreturnObservable.just(1)}source.subscribeNext{(elem)inprint("Elem is \(elem)")}.addDisposableTo(disposeBag)// 結果は下記ですEventis1
letdisposeBag=DisposeBag()// 自動unsubscribeのために必要leterror=NSError(domain:"test",code:-1,userInfo:nil)letsource:Observable<Int>=Observable.error(error)source.subscribeError{(error)inprint("Error is \(error)")}.addDisposableTo(disposeBag)// 結果は下記です。ErrorisErrorDomain=testCode=-1"(null)"
letdisposeBag=DisposeBag()// 自動unsubscribeのために必要letarray:[Int]=[1,2,3]array.toObservable().subscribeNext{(elem)inprint("Number is \(elem)")}.addDisposableTo(disposeBag)// 結果は下記です。Numberis1Numberis2Numberis3
letdisposeBag=DisposeBag()// 自動unsubscribeのために必要letsource=Observable.just(1)source.subscribeNext{(elem)inprint("Elem is \(elem)")}.addDisposableTo(disposeBag)// 結果は下記です。Elemis1
letdisposeBag=DisposeBag()// 自動unsubscribeのために必要letsource=Observable.of(1)source.subscribeNext{(elem)inprint("Elem is \(elem)")}.addDisposableTo(disposeBag)// 結果は下記です。Elemis1
range
特定の範囲のInt型を持つObservable型データを生成するオペレータです。
1234567891011
letdisposeBag=DisposeBag()// 自動unsubscribeのために必要letsource:Observable<Int>=Observable.range(start:1,count:3)source.subscribeNext{(elem)inprint("Elem is \(elem)")}.addDisposableTo(disposeBag)// 結果は下記です。Elemis1Elemis2Elemis3
letdisposeBag=DisposeBag()// 自動unsubscribeのために必要letsource=Observable.repeatElement(1).take(3)source.subscribeNext{(elem)inprint("Elem is \(elem)")}.addDisposableTo(disposeBag)// 結果は下記です。Elemis1Elemis1Elemis1