私はRxSwiftの初心者であり、非常に基本的な助けが必要です。
私はObservableを持っていると仮定し、このようにサブスクライブします。
_ let source: Observable<Void> = Observable.create { [weak self] observer in
guard let _ = self else {
observer.on(.Completed)
return NopDisposable.instance
}
observer.on(.Next())
return AnonymousDisposable {
}
}
_
そして、このようなサブスクライブ:
_ source.subscribeNext { () -> Void in
}
_
問題は、必要なときに毎回、手動でsubscribeNextのイベントを発行して手動で行う方法です。これは、UIButton
での_rx_tap
_の動作に似ています。
コード例では、次のようなものが表示されますsource = button.rx_tap.asObservale()
。その後、ユーザーがボタンをタップするたびに、イベントが発行され、subscribeNext()でトリガーされます。また、UIイベントからではなく、プログラムでその動作を実現したいと考えています。
ほとんどの場合、あなたはあなたのオブザーバブルを構成することができ、私がこれから提供しようとしているソリューションはRxコードを実行するための推奨される方法ではありません。
Subject を見て、要求した動作を実装できます。サブジェクトには複数のバリエーションがあり、ドキュメントで十分に説明されています。
RxSwiftの playground からヒントを得た使用例:
let subject = PublishSubject<String>()
_ = subject.subscribeNext { content in
print(content)
}
subject.on(.Next("a"))
subject.on(.Next("b"))
これは"a"
、次に"b"
。
件名を使用するかどうかの詳細については、 この記事 をお勧めします。
ドライバーにとっては、
var isSearching: Driver<Bool>
isSearching = Driver.just(true)