RxSwiftly 1.2.1

RxSwiftly 1.2.1

Bas van Kuijck 维护。



 
依赖
RxSwift>= 0
RxCocoa>= 0
 

RxSwiftly 1.2.1

  • 作者
  • Bas van Kuijck

RxSwiflty

E-sites 移动开发部门创建的 RxSwift 扩展集合。

forthebadge forthebadge

兼容性

  • Swift 4.2
  • RxSwift 4.4.0
  • Xcode 10.1
  • Cocoapods 1.6.0

安装

Podfile

pod 'RxSwiftly/<Framework>/<Class>'

查看 收集 了解所有框架及其子规范概述

target 'Project' do
    # RxSwiftly
    pod 'RxSwiftly/UIKit/UIApplication'
    pod 'RxSwiftly/UIKit/UITextField'
    pod 'RxSwiftly/CoreMotion/CMMotionManager'
end

收集

🎨UIKit

▫️ UIApplication
▫️ UITextField (感谢 lexrus)

🏇CoreMotion

▫️ CMMotionManager

核心

NSObject+rx

不需要在每个类中声明DisposeBag

class MyViewController: UIViewController {
-	let disposeBag = DisposeBag()
}

继承自NSObject的每个类都会自动添加一个懒加载变量disposeBag

缓存

维基百科:在计算机领域,缓存是一种优化技术,主要用于通过存储昂贵的函数调用结果,并在相同的输入再次出现时返回缓存的結果,从而加快计算机程序的速度。

详细信息请查阅源代码

Observable.pairwise()

在输入可观察对象的第二次及以后触发时触发。
输入可观察对象的第N次触发将传递第N-1次和第N次触发的参数作为一个对。

有关更多信息,请参阅RxMarbles.com#pairwise

User.current.rx.state
    .pairwise()
    .filter { $0.0 == .loggedIn && $0.1 == .loggedOut }
    .subscribe { _ in
        logger.warning("User logged out!")
    }
.addDisposableTo(disposeBag)

优于Observable.zip(sequence.skip(1), sequence)的方式