RxSwift 的核心概念包括:
- Observable:被观察者,用于发送序列事件。
- Observer:观察者,用于订阅 Observable 事件。
- Subscribe:订阅,观察者通过调用 Observable 的 subscribe() 方法进行订阅。
- Event:事件,被观察者发送的消息,主要有 next、error、completed 三种。
- Schedulers:调度器,用于控制订阅行为的执行线程。
- Subject:主体,同时作为观察者和被观察者,可以将事件广播给多个观察者。
使用 RxSwift 的基本步骤:
- 创建 Observable ,常用的操作符有:
- Observable.just():将一个或多个元素变为 Observable。
- Observable.of():与 just 相同。
- Observable.from():将数组、信号等变为 Observable。
- Observable.interval():基于时间间隔发出元素。
- Observable.create():自定义 Observable。
- 调用 subscribe() 方法创建观察者进行订阅。可拿到 next 事件的元素。
- 在 subscribe() 中传入 onNext、onError 和 onCompleted 闭包作为事件处理。
- 使用调度器控制订阅执行线程,常用的有 ConcurrentDispatchQueueScheduler、MainScheduler 等。
- 取消订阅可停止事件流。
下面是一个简单示例:
swift
let observable = Observable.of(1, 2, 3)
let observer = observable.subscribe { event in
switch event {
case .next(let element):
print(element)
case .completed:
print("Completed")
case .error(let error):
print(error)
}
}
// 输出:1 2 3 Completed
observer.dispose()