dum*_*307 14 ios reactive-cocoa swift rx-swift
我是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 {
}
}
Run Code Online (Sandbox Code Playgroud)
订阅如下:
source.subscribeNext { () -> Void in
}
Run Code Online (Sandbox Code Playgroud)
问题是:如何在每次需要时手动将事件发送到subscribeNext.这就像rx_tap行为一样UIButton.
我在示例中看到代码有这样的东西source = button.rx_tap.asObservale().之后,每次用户点击按钮时,都会在subscribeNext()上发出一个事件并触发.我也希望这种行为,但在程序上,而不是从UI事件.
tom*_*ahh 17
大多数情况下,你可以编写你的observable,我即将给出的解决方案不是推荐的Rx代码.
您可以查看Subject来实现您请求的行为.主题有多种变体,文档解释得很好.
一个示例用法,灵感来自RxSwift的游乐场:
let subject = PublishSubject<String>()
_ = subject.subscribeNext { content in
print(content)
}
subject.on(.Next("a"))
subject.on(.Next("b"))
Run Code Online (Sandbox Code Playgroud)
这将打印"a"然后"b".
有关何时使用主题的更多详细信息,我建议您阅读本文.
| 归档时间: |
|
| 查看次数: |
8956 次 |
| 最近记录: |