苹果联合收割机框架的开源实现,以随着时间的推移处理值。
该项目的主要目标是提供兼容,可靠和有效的实现,该实现可在MacOS 10.15和iOS 13以及Linux,Windows和WebAssembly之前在Apple的操作系统上使用。
| CI状态 |
|---|
OpenCombine包含三个公共目标: OpenCombine , OpenCombineFoundation和OpenCombineDispatch (第四个, COpenCombineHelpers ,被认为是私人的。不要在您的项目中导入它)。
OpenCombine本身没有任何依赖性。甚至没有基础或派遣。如果您想将OpenCombine与Dispatch一起使用(例如,用于使用DispatchQueue作为Scheduler ,例如debounce , receive(on:)等),则需要导入OpenCombine和OpenCombineDispatch 。同样适用于基础:如果您想使用,例如NotificationCenter或URLSession Publishers,则需要导入OpenCombineFoundation 。
如果您为多个平台开发代码,则可能会发现更方便地导入OpenCombineShim模块。它有条件地重新出口在Apple平台上(如果有),以及其他平台上的所有OpenCombine模块。您只能在使用SwiftPM时导入OpenCombineShim 。它目前不适用于可可录。
要将OpenCombine添加到SwiftPM软件包中,请将OpenCombine软件包添加到Package.swift依赖项列表中。 WebAssembly目前不支持OpenCombineDispatch和OpenCombineFoundation产品。如果您的项目仅针对WebAssembly,则应从依赖项列表中省略它们。如果它针对包括WebAssembly在内的多个平台,则仅在具有条件目标依赖性的非巡回仪平台上取决于它们。
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也可以直接在您的Xcode项目中作为SwiftPM依赖关系添加(需要Xcode 11向上) 。
为此,打开XCode,使用文件→ Swift软件包→添加软件包依赖关系… ,输入存储库URL,选择最新的可用版本,然后激活复选框:

要将OpenCombine添加到一个使用Cocoapods的项目中,请将OpenCombine和OpenCombineDispatch添加到Podfile中的目标依赖项列表中。
pod 'OpenCombine' , '~> 0.14.0'
pod 'OpenCombineDispatch' , '~> 0.14.0'
pod 'OpenCombineFoundation' , '~> 0.14.0' 文件opencombine_lldb.py定义了一些lldb类型摘要,以便于调试。这些类型的摘要改善了lldb和XCode显示一些opencombine值的方式。
要使用opencombine_lldb.py ,请弄清楚其完整路径。假设完整的路径是~/projects/OpenCombine/opencombine_lldb.py 。然后以下到您的~/.lldbinit文件:
command script import ~/projects/OpenCombine/opencombine_lldb.py
当前, opencombine_lldb.py定义了这些类型的类型摘要:
Subscribers.Demand参见贡献。