RxCombine
RxCombine 2.0.1


RXCombine在RxSwift和Apple的组合框架之间提供双向类型的桥接。
注意:这是高度实验性的,基本上只是一个快速的t-t-t-theperth POC。我很乐意接受公关,想法,观点或改进。谢谢 ! :)
在EXPLEAPP文件夹中查看示例应用程序。在打开项目之前,运行pod install 。

将以下行添加到您的Podfile :
pod 'RxCombine'将以下依赖项添加到您的软件包。Swift文件:
. package ( url : " https://github.com/CombineCommunity/RxCombine.git " , from : " 1.6.0 " )迦太基的支撑是预先建造的二进制文件。
将以下内容添加到您的Cartfile :
github "CombineCommunity/RxCombine"
RXCombine提供了几种助手和转换,以帮助您桥接现有的RXSWIFT类型以组合。
注意:如果您想从rxswift中的联合收割机中了解有关并行操作员的更多信息,请查看我的rxswift以组合备忘单(或在github上) 。
Observable (和其他ObservableConvertibleType s)具有返回AnyPublisher<Element, Swift.Error>反映基础Observable publisher属性。 let observable = Observable . just ( " Hello, Combine! " )
observable
. publisher // AnyPublisher<String, Swift.Error>
. sink ( receiveValue : { value in ... } )toCombine()方法将Relays和Subjects转换为其联合符合部分,因此您可以像常规的组合主题一样使用它们,并将它们连接到您现有的主题。 let relay = BehaviorRelay < Int > ( value : 0 )
// Use `sink` on RxSwift relay
let combineSubject = relay . toCombine ( )
combineSubject . sink ( receiveValue : { value in ... } )
// Use `send(value:)` on RxSwift relay
combineSubject . send ( 1 )
combineSubject . send ( 2 )
combineSubject . send ( 3 )RXCombine提供了几种助手和转换,以帮助您将代码和类型桥接到现有的RXSWIFT代码库中。
Publisher s具有asObservable()方法,可观察到Observable<Output>镜像基础Publisher 。 // A publisher publishing numbers from 0 to 100.
let publisher = AnyPublisher < Int , Swift . Error > { subscriber in
( 0 ... 100 ) . forEach { _ = subscriber . receive ( $0 ) }
subscriber . receive ( completion : . finished )
}
publisher
. asObservable ( ) // Observable<Int>
. subscribe ( onNext : { num in ... } )PassthroughSubject和CurrentValueSubject都有一个asAnyObserver()方法,该方法返回AnyObserver<Output> 。从您的RXSWIFT代码绑定到它,将事件推向基础组合主题。 // Combine Subject
let subject = PassthroughSubject < Int , Swift . Error > ( )
// A publisher publishing numbers from 0 to 100.
let publisher = AnyPublisher < Int , Swift . Error > { subscriber in
( 0 ... 100 ) . forEach { _ = subscriber . receive ( $0 ) }
subscriber . receive ( completion : . finished )
}
// Convert a Publisher to an Observable and bind it
// back to a Combine Subject ???
publisher . asObservable ( )
. bind ( to : subject )
Observable . of ( 10 , 5 , 7 , 4 , 1 , 6 )
. subscribe ( subject . asAnyObserver ( ) ) 麻省理工学院当然要;-)请参阅许可证文件。
Apple徽标和联合收割机框架是Apple Inc.的财产。