OpenCombine
苹果 Combine 框架的开源实现,用于处理时间序列上的值。
该项目的核心目标是提供一个兼容、可靠且高效的实现,可以在 macOS 10.15 和 iOS 13 以及 Linux、Windows 和 WebAssembly 操作系统上使用。
CI 状态 |
---|
安装
OpenCombine
包含三个公共目标:OpenCombine
、OpenCombineFoundation
和 OpenCombineDispatch
(第四个,COpenCombineHelpers
被视为私有。不要在您的项目中导入它)。
OpenCombine 自身没有依赖。甚至连 Foundation 或 Dispatch 都没有。如果您想使用 OpenCombine 与 Dispatch(例如,在像 debounce
、receive(on:)
这样的操作中,将 DispatchQueue
用作 Scheduler
),则需要导入 OpenCombine
和 OpenCombineDispatch
。这同样适用于 Foundation:如果您想使用例如 NotificationCenter
或 URLSession
发布者,您还需要导入 OpenCombineFoundation
。
如果您为多个平台开发代码,您可能会发现导入 OpenCombineShim
模块更方便。它条件性地在 Apple 平台上重新导出 Combine(如果可用),并在其他平台上导出所有 OpenCombine 模块。您只能在使用 SwiftPM 时导入 OpenCombineShim
。目前它对 CocoaPods 不可用。
Swift 包管理器
Swift 包
要将 OpenCombine
添加到您的 SwiftPM 包中,请将 OpenCombine
包添加到您的 Package.swift
文件中包和目标依赖项列表中。目前 OpenCombineDispatch
和 OpenCombineFoundation
产品不在 WebAssembly 上受支持。如果您的项目仅针对 WebAssembly,则应从依赖项列表中省略它们。如果您针对包括 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")
]
),
]
Xcode
OpenCombine
还可以直接在您的 Xcode 项目中作为 SwiftPM 依赖项添加 (要求 Xcode 11 以上)。
为此,请打开 Xcode,使用 文件 → Swift 包 → 添加包依赖项…,输入 仓库 URL,选择最新可用版本,并勾选复选框
CocoaPods
要使用 CocoaPods 将 OpenCombine
添加到项目中,请将 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
- 到此为止了。
贡献
请参阅CONTRIBUTING.md。