ClawSkills logoClawSkills

Swift Concurrency Expert

Swift 6.2+ 的 Swift Concurrency 审查和修复。当被要求审查 Swift Concurrency 的使用、提高并发合规性或修复 Swift 并发

介绍

# Swift Concurrency Expert

_来源:复制自 @Dimillian 的 `Dimillian/Skills` (2025-12-31)。_

## 概览

通过应用 actor 隔离、Sendable 安全性和现代并发模式,在 Swift 6.2+ 代码库中审查并修复 Swift 并发问题,且尽可能减少行为变更。

## 工作流

### 1. 分诊问题

- 捕获确切的编译器诊断信息和相关的符号。 - 识别当前的 actor 上下文(`@MainActor`、`actor`、`nonisolated`)以及是否启用了默认 actor 隔离模式。 - 确认代码是 UI 绑定的还是旨在 main actor 之外运行。

### 2. 应用最小的安全修复

优先选择在满足数据竞争安全的同时保留现有行为的编辑。

常见修复方法: - **UI 绑定类型**:使用 `@MainActor` 标注类型或相关成员。 - **Main actor 类型的协议遵循**:使遵循隔离(例如 `extension Foo: @MainActor SomeProtocol`)。 - **全局/静态状态**:使用 `@MainActor` 保护或移入 actor 中。 - **后台工作**:将繁重工作移至 `nonisolated` 类型上的 `@concurrent` async 函数中,或使用 `actor` 守护可变状态。 - **Sendable 错误**:优先使用不可变/值类型;仅在正确时添加 `Sendable` 遵循;除非你能证明线程安全,否则避免使用 `@unchecked Sendable`。

## 参考资料

- 请参阅 `references/swift-6-2-concurrency.md` 了解 Swift 6.2 的变更、模式和示例。 - 请参阅 `references/swiftui-concurrency-tour-wwdc.md` 了解 SwiftUI 特定的并发指南。

更多产品