RxSwift - API
2016-07-14 07:22
399 查看
RxSwift 支持的操作符
在某些情况,由于不同平台/实现方式,相同的操作符有多个别名,有时相同的操作命名也不一样,有些是因为历史的原因,但是还有一些是因为语言的预留关键字。当缺少社区共识的时候,RxSwift 通常会包含多个别名。
默认情况下,操作符是没有状态的。
创建 Observable
asObservablecreate
deferred
empty
error
toObservable (array)
interval
never
just
of
range
repeatElement
timer
变换 Observable
bufferflatMap
flatMapFirst
flatMapLatest
map
scan
window
过滤 Observable
debounce / throttledistinctUntilChanged`
elementAt
filter
sample
skip
take
takeLast
single
联合 Observable
mergestartWith
switchLatest
combineLatest
zip
错误处理操作符
catchretry
retryWhen
Observable Utility Operators
delaySubscriptiondo / doOnNext
observeOn / observeSingleOn
subscribe
subscribeOn
timeout
using
debug
条件和 Bool 操作符
ambskipWhile
skipUntil
takeUntil
takeWhile
数学和聚合操作符
concatreduce / aggregate
toArray
连接 Observable 操作符
multicastpublish
refCount
replay
shareReplay
创建新的操作符也是相当简单的。
RxCocoa 扩展
iOS / OSXextension NSObject { public var rx_deallocated: Observable<Void> {} #if !DISABLE_SWIZZLING public var rx_deallocating: Observable<Void> {} #endif }
extension NSObject { public func rx_observe<Element>( type: E.Type, _ keyPath: String, options: NSKeyValueObservingOptions = .New | .Initial, retainSelf: Bool = true ) -> Observable<Element?> {} #if !DISABLE_SWIZZLING public func rx_observeWeakly<Element>( type: E.Type, _ keyPath: String, options: NSKeyValueObservingOptions = .New | .Initial ) -> Observable<Element?> {} #endif }
extension NSURLSession { public func rx_response(request: NSURLRequest) -> Observable<(NSData, NSURLResponse)> {} public func rx_data(request: NSURLRequest) -> Observable<NSData> {} public func rx_JSON(request: NSURLRequest) -> Observable<AnyObject> {} public func rx_JSON(URL: NSURL) -> Observable<AnyObject> {} }
extension NSNotificationCenter { public func rx_notification(name: String, object: AnyObject?) -> Observable<NSNotification> {} }
class DelegateProxy { public func observe(selector: Selector) -> Observable<[AnyObject]> {} }
extension CLLocationManager { public var rx_delegate: DelegateProxy {} public var rx_didUpdateLocations: Observable<[CLLocation]> {} public var rx_didFailWithError: Observable<NSError> {} public var rx_didFinishDeferredUpdatesWithError: Observable<NSError> {} public var rx_didPauseLocationUpdates: Observable<Void> {} public var rx_didResumeLocationUpdates: Observable<Void> {} public var rx_didUpdateHeading: Observable<CLHeading> {} public var rx_didEnterRegion: Observable<CLRegion> {} public var rx_didExitRegion: Observable<CLRegion> {} public var rx_didDetermineStateForRegion: Observable<(state: CLRegionState, region: CLRegion)> {} public var rx_monitoringDidFailForRegionWithError: Observable<(region: CLRegion?, error: NSError)> {} public var rx_didStartMonitoringForRegion: Observable<CLRegion> {} public var rx_didRangeBeaconsInRegion: Observable<(beacons: [CLBeacon], region: CLBeaconRegion)> {} public var rx_rangingBeaconsDidFailForRegionWithError: Observable<(region: CLBeaconRegion, error: NSError)> {} public var rx_didVisit: Observable<CLVisit> {} public var rx_didChangeAuthorizationStatus: Observable<CLAuthorizationStatus> {} }
iOS
extension UIControl { public func rx_controlEvent(controlEvents: UIControlEvents) -> ControlEvent<Void> {} public var rx_enabled: ObserverOf<Bool> {} }
extension UIButton { public var rx_tap: ControlEvent<Void> {} }
extension UITextField { public var rx_text: ControlProperty<String> {} }
extension UITextView { override func rx_createDelegateProxy() -> RxScrollViewDelegateProxy {} public var rx_text: ControlProperty<String> {} }
extension UISearchBar { public var rx_delegate: DelegateProxy {} public var rx_searchText: ControlProperty<String> {} }
extension UILabel { public var rx_text: ObserverOf<String> {} }
extension UIDatePicker { public var rx_date: ControlProperty<NSDate> {} }
extension UIImageView { public var rx_image: ObserverOf<UIImage!> {} public func rx_imageAnimated(transitionType: String?) -> AnyObserver<UIImage?> }
extension UIScrollView { public var rx_delegate: DelegateProxy {} public func rx_setDelegate(delegate: UIScrollViewDelegate) {} public var rx_contentOffset: ControlProperty<CGPoint> {} }
extension UIBarButtonItem { public var rx_tap: ControlEvent<Void> {} }
extension UISlider { public var rx_value: ControlProperty<Float> {} }
extension UITableView { public var rx_dataSource: DelegateProxy {} public func rx_setDataSource(dataSource: UITableViewDataSource) -> Disposable {} public func rx_itemsWithCellFactory(source: O)(cellFactory: (UITableView, Int, S.Generator.Element) -> UITableViewCell) -> Disposable {} public func rx_itemsWithCellIdentifier(cellIdentifier: String, cellType: Cell.Type = Cell.self)(source: O)(configureCell: (Int, S.Generator.Element, Cell) -> Void) -> Disposable {} public func rx_itemsWithDataSource(dataSource: DataSource)(source: O) -> Disposable {} public var rx_itemSelected: ControlEvent<NSIndexPath> {} public var rx_itemDeselected: ControlEvent<NSIndexPath> {} public var rx_itemInserted: ControlEvent<NSIndexPath> {} public var rx_itemDeleted: ControlEvent<NSIndexPath> {} public var rx_itemMoved: ControlEvent<ItemMovedEvent> {} // This method only works in case one of the `rx_itemsWith*` methods was used, or data source implements `SectionedViewDataSourceType` public func rx_modelSelected<T>(modelType: T.Type) -> ControlEvent<T> {} // This method only works in case one of the `rx_itemsWith*` methods was used, or data source implements `SectionedViewDataSourceType` public func rx_modelDeselected<T>(modelType: T.Type) -> ControlEvent<T> {} }
extension UICollectionView { public var rx_dataSource: DelegateProxy {} public func rx_setDataSource(dataSource: UICollectionViewDataSource) -> Disposable {} public func rx_itemsWithCellFactory(source: O)(cellFactory: (UICollectionView, Int, S.Generator.Element) -> UICollectionViewCell) -> Disposable {} public func rx_itemsWithCellIdentifier(cellIdentifier: String, cellType: Cell.Type = Cell.self)(source: O)(configureCell: (Int, S.Generator.Element, Cell) -> Void) -> Disposable {} public func rx_itemsWithDataSource(dataSource: DataSource)(source: O) -> Disposable {} public var rx_itemSelected: ControlEvent<NSIndexPath> {} public var rx_itemDeselected: ControlEvent<NSIndexPath> {} // This method only works in case one of the `rx_itemsWith*` methods was used, or data source implements `SectionedViewDataSourceType` public func rx_modelSelected<T>(modelType: T.Type) -> ControlEvent<T> {} // This method only works in case one of the `rx_itemsWith*` methods was used, or data source implements `SectionedViewDataSourceType` public func rx_modelSelected<T>(modelType: T.Type) -> ControlEvent<T> {} }
extension UIGestureRecognizer { public var rx_event: ControlEvent<UIGestureRecognizer> {} }
extension UIImagePickerController { public var rx_didFinishPickingMediaWithInfo: Observable<[String : AnyObject]> {} public var rx_didCancel: Observable<()> {} }
extension UISegmentedControl { public var rx_value: ControlProperty<Int> {} }
extension UISwitch { public var rx_value: ControlProperty<Bool> {} }
extension UIActivityIndicatorView { public var rx_animating: AnyObserver<Bool> {} }
extension UINavigationItem { public var rx_title: AnyObserver<String?> {} }
OSX
extension NSControl { public var rx_controlEvent: ControlEvent<()> {} public var rx_enabled: AnyObserver<Bool> {} }
extension NSSlider { public var rx_value: ControlProperty<Double> {} }
extension NSButton { public var rx_tap: ControlEvent<Void> {} public var rx_state: ControlProperty<Int> {} }
extension NSImageView { public var rx_image: ObserverOf<NSImage?> {} public func rx_imageAnimated(transitionType: String?) -> AnyObserver<NSImage?> }
extension NSTextField { public var rx_delegate: DelegateProxy {} public var rx_text: ControlProperty<String> {} }
extension UITabBarItem { public var rx_badgeValue: AnyObserver<String?> {} }
extension UITabBar { public var rx_didSelectItem: ControlEvent<UITabBarItem> {} public var rx_willBeginCustomizing: ControlEvent<[UITabBarItem]> {} public var rx_didBeginCustomizing: ControlEvent<[UITabBarItem]> {} public var rx_willEndCustomizing: ControlEvent<(items: [UITabBarItem], changed: Bool)> {} public var rx_didEndCustomizing: ControlEvent<(items: [UITabBarItem], changed: Bool)> {} }
相关文章推荐
- iOS开发 - Swift使用GCD实现计时器功能
- Swift-构造函数(一)
- Swift String转Character数组
- swift -- 学习记录
- 自学swift (4) --- 一些超简单的东西
- Swift - 各种手势检测大全(UIGestureRecognizer及其子类)
- Swift - 触摸事件(点击,移动,抬起等)说明及用例
- 自学swift (3) --- 协议
- swift(六)函数的简单使用
- swift学习笔记之--类的计算属性
- Swift语言学习笔记(4)
- swift学习笔记之--方法
- 自学swift (2) ---修饰符(后续补充中)
- swift中获取命名空间
- Swift - 属性观察者(willSet与didSet)
- swift去除掉指定分割线
- 自学swift (1)
- 对照Java学习Swift--集合类型
- What's new in Swift 3
- Swift中的"可溢出"算术运算符