您的位置:首页 > 移动开发 > Swift

RxSwift - API

2016-07-14 07:22 399 查看

RxSwift 支持的操作符

在某些情况,由于不同平台/实现方式,相同的操作符有多个别名,有时相同的操作命名也不一样,有些是因为历史的原因,但是还有一些是因为语言的预留关键字。

当缺少社区共识的时候,RxSwift 通常会包含多个别名。

默认情况下,操作符是没有状态的。

创建 Observable

asObservable

create

deferred

empty

error

toObservable (array)

interval

never

just

of

range

repeatElement

timer

变换 Observable

buffer

flatMap

flatMapFirst

flatMapLatest

map

scan

window

过滤 Observable

debounce / throttle

distinctUntilChanged`

elementAt

filter

sample

skip

take

takeLast

single

联合 Observable

merge

startWith

switchLatest

combineLatest

zip

错误处理操作符

catch

retry

retryWhen

Observable Utility Operators

delaySubscription

do / doOnNext

observeOn / observeSingleOn

subscribe

subscribeOn

timeout

using

debug

条件和 Bool 操作符

amb

skipWhile

skipUntil

takeUntil

takeWhile

数学和聚合操作符

concat

reduce / aggregate

toArray

连接 Observable 操作符

multicast

publish

refCount

replay

shareReplay

创建新的操作符也是相当简单的。

RxCocoa 扩展

iOS / OSX

extension 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)> {}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: