- AnyObserver
- 例如:
- 例如:
AnyObserver
AnyObserver 可以用来描叙任意一种观察者。
例如:
打印网络请求结果:
URLSession.shared.rx.data(request: URLRequest(url: url)).subscribe(onNext: { data inprint("Data Task Success with count: \(data.count)")}, onError: { error inprint("Data Task Error: \(error)")}).disposed(by: disposeBag)
可以看作是:
let observer: AnyObserver<Data> = AnyObserver { (event) inswitch event {case .next(let data):print("Data Task Success with count: \(data.count)")case .error(let error):print("Data Task Error: \(error)")default:break}}URLSession.shared.rx.data(request: URLRequest(url: url)).subscribe(observer).disposed(by: disposeBag)
用户名提示语是否隐藏:
usernameValid.bind(to: usernameValidOutlet.rx.isHidden).disposed(by: disposeBag)
可以看作是:
let observer: AnyObserver<Bool> = AnyObserver { [weak self] (event) inswitch event {case .next(let isHidden):self?.usernameValidOutlet.isHidden = isHiddendefault:break}}usernameValid.bind(to: observer).disposed(by: disposeBag)
下一节将介绍 Binder 以及 usernameValidOutlet.rx.isHidden 的由来。
