用途:审阅、修复并编写面向 Swift 6.3+ 的并发代码,应用 actor 隔离、Sendable 安全与现代并发模式,尽量不改变既有行为;Swift 6.4 / Xcode 27 beta 的 API 需放在明确的工具链与可用性检查之后。
主要能力与要点:
- 排查流程:记录编译器诊断与符号,确认 Swift 语言版本(须 6.2+)、工具链版本、是否启用 Approachable Concurrency、默认 Actor 隔离是否为 MainActor、严格并发状态,以及当前 actor 上下文(@MainActor、自定义 actor、nonisolated),再采用最小安全修复并重建验证。
- Swift 6.2 变化:SE-0466 默认 MainActor 隔离(-default-isolation MainActor、SwiftPM .defaultIsolation(MainActor.self) 或 Xcode 设置),使未标注声明默认 @MainActor;SE-0461 nonisolated(nonsending) 让 nonisolated async 函数默认停留在调用方 actor;@concurrent 显式要求后台线程池执行;SE-0472 Task.immediate 立即在当前 actor 同步启动;SE-0475 Observations 通过 AsyncSequence 观察 @Observable。
- 规则:可变共享状态必须由 actor 或全局 actor 保护;UI 代码用 @MainActor;nonisolated 仅用于访问 let 或纯计算;不要在 actor 内加手动锁,不要跨 await 持锁;Mutex 与 Atomic 需用 if #available(iOS 18, *) 运行时检查。
- 结构化并发:Task、Task.detached、async let、TaskGroup;取消是协作式的,用 Task.isCancelled 或 Task.checkCancellation();SwiftUI 用 .task 修饰符。
- 同步原语:Mutex<Value>、OSAllocatedUnfairLock、Atomic<Value>,并区分 actor 与锁的适用场景。
- 常见错误:阻塞主 actor、不必要 @MainActor、无状态代码用 actor、无理由用 Task.detached、忘记取消任务、在异步上下文用信号量等。
限制:以上为资料所述内容,具体安装命令、收费与许可信息暂未提供。