目次
1.BehaviorRelayとPublishRelayの特徴
2.実例
3.おわりに
1. BehaviorRelayとPublishRelayの特徴
- BehaviorRelayとPublishRelaは.nextメソッドのみ流せる
- .errorと.completedが流れない
- .nextメソッドを流すには
.accept()
を使用する
2. BehaviorRelayとPublishRelayの違い
BehaviorRelay | PublishRelay | |
---|---|---|
初期値の有無 | 有 | 無 |
valueプロパティの有無 | 有 | 無 |
現在値流しの有無 | 有 | 無 |
behaviorRelay基本形
var disposeBag = DisposeBag()
let behaviorRelay = BehaviorRelay<Int>(value: 1)
behaviorRelay.subscribe { event in
print(event)
}.disposed(by: disposeBag)
behaviorRelay.accept(2)
bahaviorRelay.accept(3)
// 実行結果
// next(1)
// next(2)
// next(3)
PublishRelay基本形
var disposeBag = DisposeBag()
let behaviorRelay = PublishRelay<Int>()
behaviorRelay.subscribe { event in
print(event)
}.disposed(by: disposeBag)
behaviorRelay.accept(2)
bahaviorRelay.accept(3)
// 実行結果
// next(2)
// next(3)
補足:現在値流しの有無
現在値流し
var disposeBag = DisposeBag()
let behaviorRelay = BehaviorRelay<Int>(value: 1)
behaviorRelay.subscribe { event in
print(event)
}.disposed(by: disposeBag
// ここまで書いただけで初期値value=1が流れる
// 実行結果
// behaviorRelay next(1)
3. おわりに
本記事を最後まで読んでいただきありがとうございました!
RxSwift、combine、SwiftUIなど目まぐるしく変わるiOSのトレンドですが、頑張って食らいつきましょ