RxSwift入门
事件源
在iOS开发中我们接触到的这些事件:
- Target-Action
- NSNotificationCenter
- Key-Value Observing
- Delegates
- Callback Closures
RxSwift提供了一个统一的API来封装这些事件:Observable<Element>
Observable的意思是可以观察的,指产生事件的事件源。
事件的类型
事件有3中类型:下一个、失败、结束,定义如下:
enum Event<Element> {
case Next(Element)
case Error(ErrorType)
case Completed
}
创建一个事件源
let o = Observable.create { observer in
observer.on(.Next("Hello world!"))
observer.on(.Completed)
return Disposables.create()
}
监听事件源
protocol ObservableType {
func subscribe(on: (event: Event) -> Void) -> Disposable
}
示例
Observable<String>.create { (observer) -> Disposable in
observer.onNext("Hello world!")
observer.onCompleted()
return Disposables.create()
}.subscribe { (element) in
print(element)
}.disposed(by: disposeBag)
// outputs:
// Next(Hello world!)
// Completed