Open-Source-Implementierung des Apple-Kombination von Framework für die Verarbeitungswerte im Laufe der Zeit.
Das Hauptziel dieses Projekts ist es, eine kompatible, zuverlässige und effiziente Implementierung bereitzustellen, die vor MacOS 10.15 und iOS 13 sowie Linux, Windows und WebAssembly auf Apple's Betriebssystemen verwendet werden kann.
| CI -Status |
|---|
OpenCombine enthält drei öffentliche Ziele: OpenCombine , OpenCombineFoundation und OpenCombineDispatch (die vierte, COpenCombineHelpers , gilt als privat. Importieren Sie es nicht in Ihren Projekten).
OpenCombine selbst hat keine Abhängigkeiten. Nicht einmal Fundament oder Versand. Wenn Sie OpenCombine mit dem Versand verwenden möchten (z. B. zur Verwendung DispatchQueue als Scheduler für Operatoren wie debounce , receive(on:) ) usw., müssen Sie sowohl OpenCombine als auch OpenCombineDispatch importieren. Gleiches gilt für die Foundation: Wenn Sie beispielsweise NotificationCenter oder URLSession -Publisher verwenden möchten, müssen Sie auch OpenCombineFoundation importieren.
Wenn Sie Code für mehrere Plattformen entwickeln, ist es möglicherweise bequemer, stattdessen das OpenCombineShim -Modul zu importieren. Es exportiert bedingt zusammen, kombiniert sich auf Apple-Plattformen (falls verfügbar) und alle OpenCombine-Module auf anderen Plattformen. Sie können OpenCombineShim nur bei Verwendung von SwiftPM importieren. Es ist derzeit nicht für Cocoapods erhältlich.
Um Ihrem SwiftPM -Paket OpenCombine hinzuzufügen, fügen Sie das OpenCombine -Paket in die Liste der Paket- und Zielabhängigkeiten in Ihrem Package.swift -Datei hinzu. OpenCombineDispatch und OpenCombineFoundation -Produkte werden derzeit nicht in der WebAssembly unterstützt. Wenn Ihr Projekt ausschließlich auf WebAssembly abzielt, sollten Sie sie aus der Liste Ihrer Abhängigkeiten weglassen. Wenn es auf mehrere Plattformen abzielt, einschließlich WebAssembly, hängen sie nur von ihnen auf Nicht-Webassembly-Plattformen mit bedingten Zielabhängigkeiten ab.
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 kann auch als SWIFTPM -Abhängigkeit direkt in Ihrem Xcode -Projekt hinzugefügt werden (erfordert Xcode 11 nach oben) .
Öffnen Sie dazu Xcode, verwenden Sie die Datei → Swift -Pakete → Paketabhängigkeit hinzufügen… , geben Sie die Repository -URL ein, wählen Sie die neueste verfügbare Version und aktivieren Sie die Kontrollkästchen:

Fügen Sie OpenCombine zu einem Projekt mit Cocoapods hinzu, fügen Sie der Liste der Zielabhängigkeiten in Ihrem Podfile OpenCombine und OpenCombineDispatch hinzu.
pod 'OpenCombine' , '~> 0.14.0'
pod 'OpenCombineDispatch' , '~> 0.14.0'
pod 'OpenCombineFoundation' , '~> 0.14.0' Die Datei opencombine_lldb.py definiert einige lldb -Typ -Zusammenfassungen für einfacheres Debuggen. Diese Typzusammenfassungen verbessern die Art und Weise, wie lldb und Xcode einige OpenCombine -Werte anzeigen.
Um opencombine_lldb.py zu verwenden, finden Sie seinen vollständigen Pfad heraus. Nehmen wir an, der vollständige Pfad lautet ~/projects/OpenCombine/opencombine_lldb.py . Dann die folgende Anweisung zu Ihrer ~/.lldbinit -Datei:
command script import ~/projects/OpenCombine/opencombine_lldb.py
Derzeit definiert opencombine_lldb.py Typzusammenfassungen für diese Typen:
Subscribers.DemandSiehe Beitrag.md.