

O RXCombine fornece uma ponte bidirecional do tipo entre RXSWIFT e a estrutura combinada da Apple.
NOTA : Isso é altamente experimental e basicamente apenas um POC rapidamente put-together. Com prazer, aceito PRs, idéias, opiniões ou melhorias. Obrigado ! :)
Confira o aplicativo de exemplo na pasta ExampleApp . Execute pod install antes de abrir o projeto.

Adicione a seguinte linha ao seu PODFILE :
pod 'RxCombine'Adicione a seguinte dependência ao seu arquivo package.swift :
. package ( url : " https://github.com/CombineCommunity/RxCombine.git " , from : " 1.6.0 " )O suporte de Cartago é oferecido como um binário pré -construído.
Adicione o seguinte ao seu arquivo Cart :
github "CombineCommunity/RxCombine"
O RxCombine fornece vários ajudantes e conversões para ajudá -lo a preencher seus tipos de RxSwift existentes para combinar.
NOTA : Se você quiser saber mais sobre os operadores paralelos combinados do RXSWIFT, confira meu RXSWIFT para combinar a folha de dicas (ou no GitHub) .
Observable (e outros ObservableConvertibleType S) possui uma propriedade publisher que retorna um AnyPublisher<Element, Swift.Error> espelhando o Observable subjacente. let observable = Observable . just ( " Hello, Combine! " )
observable
. publisher // AnyPublisher<String, Swift.Error>
. sink ( receiveValue : { value in ... } )Relays e Subjects podem ser convertidos em suas partes combinadas usando o método toCombine() , para que você possa usá-los como se fossem assuntos de combinação regulares e entregá-los aos seus assuntos existentes. 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 )O RXCombine fornece vários ajudantes e conversões para ajudá -lo a preencher o código e o tipo de código e tipos de código de código RXSWIFT existente.
Publisher têm um método asObservable() , fornecendo um Observable<Output> espelhando o Publisher subjacente. // 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 e CurrentValueSubject possuem um método asAnyObserver() que retorna um AnyObserver<Output> . A ligação a ele do seu código RXSWIFT leva os eventos ao assunto combinado subjacente. // 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 ( ) ) MIT, é claro ;-) Veja o arquivo de licença.
O logotipo da Apple e a estrutura combinada são propriedade da Apple Inc.