Implementasi open-source dari kerangka kerja gabungan Apple untuk memproses nilai dari waktu ke waktu.
Tujuan utama dari proyek ini adalah untuk memberikan implementasi yang kompatibel, andal dan efisien yang dapat digunakan pada sistem operasi Apple sebelum MacOS 10.15 dan iOS 13, serta Linux, Windows dan WebAssembly.
| Status CI |
|---|
OpenCombine berisi tiga target publik: OpenCombine , OpenCombineFoundation dan OpenCombineDispatch (yang keempat, COpenCombineHelpers , dianggap pribadi. Jangan mengimpornya dalam proyek Anda).
OpenCombine sendiri tidak memiliki dependensi. Bahkan fondasi atau pengiriman. Jika Anda ingin menggunakan OpenCombine dengan pengiriman (misalnya untuk menggunakan DispatchQueue sebagai Scheduler untuk operator seperti debounce , receive(on:) dll.), Anda perlu mengimpor OpenCombine dan OpenCombineDispatch . Hal yang sama berlaku untuk fondasi: Jika Anda ingin menggunakan, misalnya, NotificationCenter atau penerbit URLSession , Anda harus juga mengimpor OpenCombineFoundation .
Jika Anda mengembangkan kode untuk beberapa platform, Anda mungkin merasa lebih nyaman untuk mengimpor modul OpenCombineShim sebagai gantinya. Ini secara kondisional mengekspor kembali digabungkan pada platform Apple (jika tersedia), dan semua modul OpenCombine di platform lain. Anda dapat mengimpor OpenCombineShim hanya saat menggunakan Swiftpm. Saat ini tidak tersedia untuk cocoapods.
Untuk menambahkan OpenCombine ke paket SwiftPM Anda, tambahkan paket OpenCombine ke daftar paket dan dependensi target dalam file Package.swift Anda. Produk OpenCombineDispatch dan OpenCombineFoundation saat ini tidak didukung di WebAssembly. Jika proyek Anda menargetkan WebAssembly secara eksklusif, Anda harus menghilangkannya dari daftar dependensi Anda. Jika menargetkan banyak platform termasuk WebAssembly, bergantung pada mereka hanya pada platform non-Webassembly dengan dependensi target bersyarat.
dependencies: [
. package ( url : " https://github.com/OpenCombine/OpenCombine.git " , from : " 0.14.0 " )
] ,
targets: [
. target (
name : " MyAwesomePackage " ,
dependencies : [
" OpenCombine " ,
. product ( name : " OpenCombineFoundation " , package : " OpenCombine " ) ,
. product ( name : " OpenCombineDispatch " , package : " OpenCombine " )
]
) ,
] OpenCombine juga dapat ditambahkan sebagai ketergantungan SwiftPM secara langsung dalam proyek XCODE Anda (membutuhkan Xcode 11 ke atas) .
Untuk melakukannya, buka Xcode, gunakan File → Paket Swift → Tambahkan ketergantungan paket ... , masukkan URL repositori, pilih versi terbaru yang tersedia, dan aktifkan kotak centang:

Untuk menambahkan OpenCombine ke proyek menggunakan cocoapods, tambahkan OpenCombine dan OpenCombineDispatch ke daftar dependensi target di Podfile Anda.
pod 'OpenCombine' , '~> 0.14.0'
pod 'OpenCombineDispatch' , '~> 0.14.0'
pod 'OpenCombineFoundation' , '~> 0.14.0' File opencombine_lldb.py mendefinisikan beberapa ringkasan jenis lldb untuk debugging yang lebih mudah. Ringkasan jenis ini meningkatkan cara lldb dan XCODE menampilkan beberapa nilai opencombine.
Untuk menggunakan opencombine_lldb.py , cari tahu jalur lengkapnya. Katakanlah jalur lengkapnya adalah ~/projects/OpenCombine/opencombine_lldb.py . Kemudian pernyataan berikut untuk file ~/.lldbinit Anda:
command script import ~/projects/OpenCombine/opencombine_lldb.py
Saat ini, opencombine_lldb.py mendefinisikan ringkasan jenis untuk tipe ini:
Subscribers.DemandLihat Contributing.md.