SuperAPI AI 工具集

swift-knowledge-patch

编程与开发

查看项目

更新于 10-16 01:35

技能介绍

这是面向 Swift 6.1–6.3.0 的知识补丁,基线为 Swift 6.0(类型化 throws、~Copyable 泛型、数据竞争安全、Swift Testing、Embedded Swift 预览、128 位整数)。内容按参考文档分主题整理:language-and-library.md(语法、键路径、内存安全、借用、InlineArray、Span、观察、正则、ABI 与优化控制)、concurrency.md(Approachable Concurrency、actor 隔离、执行器行为、任务 API、Objective-C 并发导入、类型化通知)、testing-documentation-and-tools.md(Swift Testing、XCTest、DocC、SourceKit-LSP、VS Code、LLDB)、packages-builds-and-platforms.md(SwiftPM traits、警告策略、子进程、SwiftBuild、生成的 C 输入、宏、WebAssembly、Android)、c-family-interop.md(Objective-C 实现、严格 C++ 生命周期标注、安全包装、@c、C 模块与 API notes)、embedded-swift.md。覆盖批次为 6.1-guide、6.1、6.2-approachable-concurrency、6.2-language、6.2-interop-and-testing、6.2、6.3-embedded-and-c、6.3。

破坏性变更与迁移:执行器行为需审慎选择,Approachable Concurrency 会改变 async 代码运行位置,新 Xcode 项目默认启用、既有项目需显式选择;SwiftPM 6.2 可逐组件迁移并通过 enableUpcomingFeature 开启 DisableOutwardActorInference、GlobalActorIsolatedTypesUsability、InferIsolatedConformances、InferSendableFromCaptures、NonisolatedNonsendingByDefault。nonisolated(nonsending) 使非隔离 async 函数停留在调用者 actor,@concurrent 用于切换到通用执行器。Swift 6.2 支持按模块设置 MainActor 或 nonisolated 默认隔离。严格内存安全检查为可选,调用 @unsafe API 未加 unsafe 会告警;成员导入需显式 import 以配合 MemberImportVisibility;#expect(throws:) 与 #require(throws:) 现返回匹配到的错误;导入的 Objective-C completion handler 默认 @Sendable;@_cdecl 应替换为 @c(name),@_alwaysEmitIntoClient 替换为 @export(implementation) 或 @export(interface)。

高价值特性:InlineArray 提供固定大小内联存储,需指名静态数量,不是 Sequence 或 Collection,按索引迭代;Span 是对已初始化连续存储的可复制、不可逃逸只读借用,同样不是 Sequence 或 Collection,RawSpan 用于异构字节;方法、初始化器与元类型静态属性可参与键路径;Observations 提供对 @Observable 读取的 AsyncSequence;Task.immediate 在当前执行器同步启动至首次挂起,任务组提供 addImmediateTask 等;actor 隔离 class 可声明 isolated deinit;任务组可推断子任务结果类型。工具与包方面:SwiftPM 6.1 起支持 traits,可用 swift build --traits Bar,Baz、swift test --enable-all-traits、swift run --disable-default-traits、swift package show-traits;SwiftPM 6.3 保留原生构建系统为默认,可用 --build-system swiftbuild 预览;诊断分组通过 -print-diagnostic-groups 与 -Werror/-Wwarning Group 控制;平台新增 WebAssembly 支持与官方 Android Swift SDK,并可通过 Swift Java 与 Swift Java JNI Core 集成。

限制:本文仅是索引式快速参考,实现具体 API 前应阅读对应主题参考文件,其中包含被有意省略的约束与次级特性。具体用法、平台支持和行为细节以官方文档为准。