OpenCombine 是 Apple Combine 框架的开源实现,用于处理随时间变化的值。
此项目的主要目标是提供一个兼容、可靠且高效的实现,可以在 macOS 10.15 和 iOS 13 之前的 Apple 操作系统以及 Linux、Windows 和 WebAssembly 上使用。
该软件包的文档可以在 OpenCombine 文档 中找到
CI 状态 |
---|
OpenCombine
包含三个公共目标:OpenCombine
、OpenCombineFoundation
和 OpenCombineDispatch
(第四个目标 COpenCombineHelpers
被认为是私有的。请勿在您的项目导入它)。
OpenCombine 本身没有任何依赖项。甚至没有 Foundation 或 Dispatch。如果您想将 OpenCombine 与 Dispatch 一起使用 (例如,将 DispatchQueue
用作 debounce
、receive(on:)
等运算符的 Scheduler
),您需要同时导入 OpenCombine
和 OpenCombineDispatch
。Foundation 也是如此:如果您想使用例如 NotificationCenter
或 URLSession
发布者,您还需要导入 OpenCombineFoundation
。
如果您为多个平台开发代码,您可能会发现导入 OpenCombineShim
模块更方便。它在 Apple 平台上(如果可用)有条件地重新导出 Combine,并在其他平台上导出所有 OpenCombine 模块。
要将 OpenCombine
添加到您的 SwiftPM 包,请将 OpenCombine
包添加到您的 Package.swift
文件中的包和目标依赖项列表中。OpenCombineDispatch
和 OpenCombineFoundation
产品目前在 WebAssembly 上不受支持。如果您的项目专门以 WebAssembly 为目标,则应从依赖项列表中省略它们。如果它以包括 WebAssembly 在内的多个平台为目标,则仅在非 WebAssembly 平台上依赖它们,使用 条件目标依赖项。
dependencies: [
.package(url: "https://github.com/OpenSwiftUIProject/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,使用 File → Swift Packages → Add Package Dependency…,输入 仓库 URL,选择最新的可用版本,并激活复选框
文件 opencombine_lldb.py
定义了一些 lldb
类型摘要,以便更轻松地进行调试。这些类型摘要改进了 lldb
和 Xcode 显示某些 OpenCombine 值的方式。
要使用 opencombine_lldb.py
,请找出它的完整路径。假设完整路径是 ~/projects/OpenSwiftUIProject/opencombine_lldb.py
。然后将以下语句添加到您的 ~/.lldbinit
文件中
command script import ~/projects/OpenSwiftUIProject/opencombine_lldb.py
目前,opencombine_lldb.py
为以下类型定义了类型摘要
Subscribers.Demand
请参阅 CONTRIBUTING.md。