引入了多种同步原语和任务同步机制,以辅助现代 Swift 并发。
尽管 Swift 的现代结构化并发提供了一种更安全的并发管理方式,但在目前的状态下,它缺乏许多同步和任务管理功能。AsyncObjects 旨在通过提供以下功能来弥补功能上的差距:
CancellationSource
更轻松地取消任务。AsyncSemaphore
、AsyncEvent
和 AsyncCountdownEvent
。TaskOperation
和 TaskQueue
。Future
在多个任务边界之间传输数据。平台 | 最低 Swift 版本 | 安装 | 状态 |
---|---|---|---|
iOS 13.0+ / macOS 10.15+ / tvOS 13.0+ / watchOS 6.0+ | 5.6 | CocoaPods, Carthage, Swift Package Manager, 手动 | 完全测试 |
Linux | 5.6 | Swift Package Manager | 完全测试 |
Windows | 5.6 | Swift Package Manager | 完全测试 |
CocoaPods 是 Cocoa 项目的依赖管理器。有关使用和安装说明,请访问其网站。要使用 CocoaPods 将 AsyncObjects
集成到您的 Xcode 项目中,请在您的 Podfile
中指定它
pod 'AsyncObjects'
或者,您还可以使用 GitHub 发布页面上预构建的 XCFramework,只需将 {version}
替换为您要使用的所需版本即可
pod 'AsyncObjects', :http => 'https://github.com/SwiftyLab/AsyncObjects/releases/download/v{version}/AsyncObjects-{version}.xcframework.zip'
Carthage 是一个去中心化的依赖管理器,可以构建您的依赖项并为您提供二进制框架。要使用 Carthage 将 AsyncObjects
集成到您的 Xcode 项目中,请在您的 Cartfile
中指定它
github "SwiftyLab/AsyncObjects"
Swift Package Manager 是一种用于自动化 Swift 代码分发的工具,它集成在 swift
编译器中。
设置好 Swift 包后,将 AsyncObjects
添加为依赖项就像将其添加到 Package.swift
的 dependencies
值一样简单。
.package(url: "https://github.com/SwiftyLab/AsyncObjects.git", from: "1.0.0"),
或者,您还可以使用 GitHub 发布页面上预构建的 XCFramework,只需将 {version}
和 {checksum}
替换为您要使用的所需版本和工件校验和,但在此情况下,必须单独添加依赖项
.binaryTarget(name: "AsyncObjects", url: "https://github.com/SwiftyLab/AsyncObjects/releases/download/v{version}/AsyncObjects-{version}.xcframework.zip", checksum: "{checksum}"),
如果您不想使用任何上述依赖管理器,您可以手动将 AsyncObjects
集成到您的项目中。
打开终端,cd
进入您的顶级项目目录,并运行以下命令 “if” 您的项目未初始化为 git 存储库
$ git init
通过运行以下命令将 AsyncObjects
添加为 git 子模块
$ git submodule add https://github.com/SwiftyLab/AsyncObjects.git
打开新的 AsyncObjects
文件夹,并将 AsyncObjects.xcodeproj
拖到应用程序 Xcode 项目或现有工作区 Project Navigator 中。
它应该嵌套在应用程序的蓝色项目图标下。它是在所有其他 Xcode 组之上还是之下并不重要。
在 Project Navigator 中选择 AsyncObjects.xcodeproj
,并验证部署目标是否满足应用程序目标的要求(应小于或等于)。
接下来,在 Project Navigator(蓝色项目图标)中选择您的应用程序项目,以导航到目标配置窗口,然后在侧边栏的 Targets
标题下选择应用程序目标。
在该窗口顶部的选项卡栏中,打开“General”面板。
单击 Frameworks and Libraries
部分下的 +
按钮。
您将看到 AsyncObjects.xcodeproj
文件夹,其中嵌套着 AsyncObjects.framework
。
选择 AsyncObjects.framework
,就可以了!
AsyncObjects.framework
会自动添加为目标依赖项、链接框架和嵌入框架,这些都是在模拟器和设备上构建所需的全部内容。
您也可以直接从 GitHub 发布页面下载预构建的工件
从 GitHub 发布页面下载格式为 AsyncObjects-{version}.xcframework.zip
的工件,其中 {version}
是您要使用的版本。
从存档中提取 XCFramework,并将 AsyncObjects.xcframework
拖到 Xcode 项目中应用程序目标文件夹的 Project Navigator 中。
选择 Copy items if needed
,就可以了!
AsyncObjects.xcframework
会自动添加到嵌入的Frameworks and Libraries
部分,进而添加到构建阶段的链接框架中。依赖项不随 XCFramework 提供,必须单独添加。
有关 API 详细信息和示例场景的文章,请参阅完整的文档。
如果您希望贡献更改,提出任何改进建议,请查看我们的贡献指南,检查未解决的问题,是否已经在处理中或打开拉取请求。
AsyncObjects
是在 MIT 许可证下发布的。 有关详细信息,请参阅 LICENSE。