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.的財產。