在RxSwift中,很容易将a Driver
或Observable
in 绑定到a View Model
中的某个观察者ViewController
(即UILabel
)。
我通常更喜欢用其他可观察变量创建的可观察变量建立一个管道,而不是“强制”推送值(例如通过a PublishSubject
)。
让我们使用此示例:从网络中获取一些数据后更新aUILabel
final class RxViewModel {
private var dataObservable: Observable<Data>
let stringDriver: Driver<String>
init() {
let request = URLRequest(url: URL(string:"https://www.google.com")!)
self.dataObservable = URLSession.shared
.rx.data(request: request).asObservable()
self.stringDriver = dataObservable
.asDriver(onErrorJustReturn: Data())
.map { _ in return "Network data received!" }
}
}
Run Code Online (Sandbox Code Playgroud)
final class RxViewController: UIViewController {
private let disposeBag = DisposeBag()
let rxViewModel = RxViewModel() …
Run Code Online (Sandbox Code Playgroud)