AGENT SKILL
swift-concurrency
Standards for async/await, Actors, Task Groups, and MainActor. Use when implementing Swift async/await, Actors, or structured concurrency in iOS/macOS. (triggers: **/*.swift, async, await, actor, Task, MainActor)
- License 许可
- MIT
- 最近更新
- 2026-06-24
- Stars
- ★ 67
- Forks
- 24
01 前言 Front Matter
- name
- swift-concurrency
- description
- Standards for async/await, Actors, Task Groups, and MainActor. Use when implementing Swift async/await, Actors, or structured concurrency in iOS/macOS. (triggers: **/*.swift, async, await, actor, Task, MainActor)
02 资源文件 3
- 许可证LICENSE.txt11.1 KB
- 脚本templates/generator_template.js7.6 KB
- 参考文档templates/viewer.html20.4 KB
03 SKILL.md 正文
Swift Concurrency
Priority: P0
Implementation Guidelines
async/await (Structured Concurrency)
- Async Functions: Mark with
asyncand call withawait. async let: Useasync letfor parallel execution when multiple tasks are independent.- Task Groups: Use
withTaskGrouporwithThrowingTaskGroupfor spawning a dynamic number of tasks. - Error Handling: Combine with
throws. Always handleCancellationError.
Actors (Thread Safety)
- Data Isolation: Use
actorfor shared mutable state to avoid data races. @MainActor: Annotate UI classes (Views, ViewModels) with@MainActorfor main thread execution. UseMainActor.run { ... }for inline UI updates in async blocks.- Global Actors: Use
@GlobalActorfor specific thread-bound resources. - nonisolated: Use
nonisolatedfor methods that don't access actor state to avoid unnecessary hops.
Task Management
- Task Hierarchy: Inherit isolation by using
Task { ... }. - Cancellation: Explicitly check
Task.isCancelledin long loops. Usetry Task.checkCancellation()for throwing functions. - Detached Tasks: Avoid
Task.detachedunless you explicitly want to break context inheritance.
Anti-Patterns
- No synchronous work in @MainActor: Do not block the main thread.
- No UI updates off @MainActor: Always dispatch back to main via
MainActor. - No ignored cancellation: Always check and propagate cancellation.