用途:审查并修复 Swift 6.2+ 代码库中的并发问题,应用 actor 隔离、Sendable 安全与现代并发模式,尽量不改变现有行为。
适用时机:用户要求审查 Swift 并发用法或修复编译器诊断;需要关于 actor 隔离、Sendable、@MainActor 或 async 迁移的指导。
工作流程:
- 分诊问题:记录确切的编译器诊断与相关符号;检查项目并发设置(Swift 语言版本 6.2+、严格并发级别、是否启用 approachable concurrency 的默认 actor 隔离/默认主 actor);识别当前 actor 上下文(@MainActor、actor、nonisolated)及是否启用默认 actor 隔离模式;确认代码是否绑定 UI 或意图脱离主 actor 运行。
- 应用最小安全修复:优先保留现有行为同时满足数据竞争安全。常见修复包括:UI 绑定类型用 @MainActor 标注类型或相关成员;主 actor 类型上的协议遵循改为隔离遵循(如 extension Foo: @MainActor SomeProtocol);全局/静态状态用 @MainActor 保护或移入 actor;后台工作移入 nonisolated 类型上的 @concurrent async 函数,或用 actor 保护可变状态;Sendable 错误优先使用不可变/值类型,仅在正确时添加 Sendable 遵循,避免 @unchecked Sendable,除非能证明线程安全。
- 验证修复:重新构建确认所有并发诊断已解决且未引入新警告;运行测试套件检查回归,因为并发改动即使构建干净也可能引入细微运行时问题;若出现新警告,按步骤 1 重新分诊并迭代,直到构建干净且测试通过。
参考材料:references/swift-6-2-concurrency.md 提供 Swift 6.2 变更、模式与示例;references/approachable-concurrency.md 用于项目启用 approachable concurrency 模式时;references/swiftui-concurrency-tour-wwdc.md 提供 SwiftUI 专属并发指导。
限制:资料未提供安装命令、收费、价格、平台或效果信息。