

RXCombine menyediakan jembatan tipe dua arah antara RXSWIFT dan kerangka kerja gabungan Apple.
CATATAN : Ini sangat eksperimental, dan pada dasarnya hanya POC yang cepat berkumpul. Saya dengan senang hati menerima PR, ide, pendapat, atau perbaikan. Terima kasih ! :)
Lihatlah aplikasi contoh di folder ExampleApp . Jalankan pod install sebelum membuka proyek.

Tambahkan baris berikut ke podfile Anda:
pod 'RxCombine'Tambahkan ketergantungan berikut ke file package.swift Anda:
. package ( url : " https://github.com/CombineCommunity/RxCombine.git " , from : " 1.6.0 " )Dukungan Carthage ditawarkan sebagai biner prebuilt.
Tambahkan yang berikut ke cartfile Anda:
github "CombineCommunity/RxCombine"
RXCombine menyediakan beberapa pembantu dan konversi untuk membantu Anda menjembatani jenis RXSWIFT yang ada untuk digabungkan.
Catatan : Jika Anda ingin mempelajari lebih lanjut tentang operator paralel dalam gabungan dari RXSwift, lihat RXSwift saya untuk menggabungkan lembar cheat (atau di GitHub) .
Observable (dan ObservableConvertibleType s) lainnya memiliki properti publisher yang mengembalikan AnyPublisher<Element, Swift.Error> yang mencerminkan yang dapat Observable . let observable = Observable . just ( " Hello, Combine! " )
observable
. publisher // AnyPublisher<String, Swift.Error>
. sink ( receiveValue : { value in ... } )Relays dan Subjects dapat dikonversi ke combine-counterparts mereka menggunakan metode toCombine() , sehingga Anda dapat menggunakannya seolah-olah mereka adalah subjek kombinasi reguler, dan menghubungkannya dengan subjek Anda yang ada. 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 menyediakan beberapa pembantu dan konversi untuk membantu Anda menjembatani kode dan jenis kombinasi ke basis kode RXSWIFT yang ada.
Publisher S memiliki metode asObservable() , memberikan Observable<Output> mencerminkan Publisher yang mendasarinya. // 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 dan CurrentValueSubject keduanya memiliki metode asAnyObserver() yang mengembalikan < AnyObserver<Output> . Mengikatnya dari kode RXSWIFT Anda mendorong peristiwa ke subjek kombinasi yang mendasarinya. // 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, tentu saja ;-) Lihat file lisensi.
Logo Apple dan Kerangka Kombinasi adalah milik Apple Inc.