RxSupport
安装
RxSupport可以通过CocoaPods获得。要安装它,仅在Podfile中添加以下行即可
pod 'RxSupport'
需求
- Swift 4
示例
为了运行示例项目,首先需要克隆仓库,并在示例目录中运行pod install
。
Observable.Element的类型支持
解包Observale.Element是可选类型
// notNil
let optionalValue1: String? = "not nil"
Observable.just(optionalValue1)
.notNil()
.subscribe(weak: self) { (self, value) in
print("string = \(value)")
}
.disposed(by: disposeBag)
// or
let optionalValue2: String? = nil
Observable.just(optionalValue2)
.or("null value")
.subscribe(weak: self) { (self, value) in
print("string = \(value)")
}
.disposed(by: disposeBag)
ObservableType.Weak
弱self创建时,self为nil时闭包不工作。节省你的类型。flatMap、flatMapFirst、flatMapLatest、do、map、subscribe
// Before
Observable.just(1)
.map { [weak self] number -> String? in
if let self = self {
return "\(self.text) \(number)"
} else {
return nil
}
}
.notNil()
.subscribe(onNext: { [weak self] value in
guard let self = self else { return }
print("\(self.format)\(value)")
})
.disposed(by: disposeBag)
// After
Observable.just(2)
.map(weak: self) { (self, number) -> String in
"\(self.text) \(number)"
}
.subscribe(weak: self) { (self, value) in
print("\(self.format)\(value)")
}
.disposed(by: disposeBag)
作者
outofcoding,[email protected]
许可
RxSupport 在MIT许可下可用。请参阅LICENSE文件以获取更多信息。