用途:该技能面向 Swift 6 严格并发模式,帮助在新建项目时确定并发策略,排查 actor 隔离、数据竞争、Sendable 警告与 "Sending 'self' risks causing data races" 等错误,并在 @MainActor、nonisolated、@concurrent、actor 之间做选择。资料标注版本为 Swift 6.3(默认严格并发),@concurrent 需 Swift 6.2+,iOS 17+(@concurrent 需 iOS 26+),Xcode 16+(@concurrent 需 Xcode 26+)。
主要理念:按隔离域而非线程思考。@MainActor 拥有 UI 状态,自定义 actor 拥有共享可变状态,nonisolated 不拥有状态由调用方决定,@concurrent 强制后台执行。async 不等于后台:async 函数挂起但不阻塞,恢复时回到原 actor。优先结构化并发,用 async let 与 TaskGroup 自动传递取消与错误;Task {} 用于同步转异步边界,Task.detached 为最后手段;GCD 仅用于桥接旧 API。
进展路径:单线程 → 异步(隐藏网络等延迟)→ 并发(后台 CPU 工作)→ actor(把数据移出主 actor)。仅当性能分析显示需要时才引入并发。
主要能力与用法:@concurrent 修饰的函数始终切到后台线程池,适合图像处理、解析等;nonisolated 适合通用库 API;actor 适合非 UI 子系统(网络管理器、缓存、数据库);Sendable 用于跨 actor 边界的数据校验,值类型天然可复制传递,类默认非 Sendable,可在发送前完成修改或不并发共享。
限制:不适用于一般 Swift 语法、SwiftUI 专属模式或 API 专属模式。actor 会增加复杂度,UI 面向类建议保持 @MainActor;应先分析再逐步抽取子系统。资料未提供收费、价格与平台支持细节。