OpenCombineFoundation 0.14.0

OpenCombineFoundation 0.14.0

Max Desiatovbroadway_lamb 维护。



  • 作者:
  • Sergej Jaskiewicz

OpenCombine

codecov Language Cocoapods

苹果 Combine 框架的开源实现,用于处理时间序列上的值。

该项目的核心目标是提供一个兼容、可靠且高效的实现,可以在 macOS 10.15 和 iOS 13 以及 Linux、Windows 和 WebAssembly 操作系统上使用。

CI 状态
Compatibility tests
macOS
Ubuntu
Windows
Wasm

安装

OpenCombine 包含三个公共目标:OpenCombineOpenCombineFoundationOpenCombineDispatch(第四个,COpenCombineHelpers 被视为私有。不要在您的项目中导入它)。

OpenCombine 自身没有依赖。甚至连 Foundation 或 Dispatch 都没有。如果您想使用 OpenCombine 与 Dispatch(例如,在像 debouncereceive(on:) 这样的操作中,将 DispatchQueue 用作 Scheduler),则需要导入 OpenCombineOpenCombineDispatch。这同样适用于 Foundation:如果您想使用例如 NotificationCenterURLSession 发布者,您还需要导入 OpenCombineFoundation

如果您为多个平台开发代码,您可能会发现导入 OpenCombineShim 模块更方便。它条件性地在 Apple 平台上重新导出 Combine(如果可用),并在其他平台上导出所有 OpenCombine 模块。您只能在使用 SwiftPM 时导入 OpenCombineShim。目前它对 CocoaPods 不可用。

Swift 包管理器
Swift 包

要将 OpenCombine 添加到您的 SwiftPM 包中,请将 OpenCombine 包添加到您的 Package.swift 文件中包和目标依赖项列表中。目前 OpenCombineDispatchOpenCombineFoundation 产品不在 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,选择最新可用版本,并勾选复选框

Select the OpenCombine and OpenCombineDispatch targets

CocoaPods

要使用 CocoaPodsOpenCombine 添加到项目中,请将 OpenCombineOpenCombineDispatch 添加到 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