将DispatchQueue-heavy模块转换为async/await
何时使用: 您拥有一个混合DispatchQueue、completion处理程序和@ escaping闭包的模块;您想要async/await。
前置条件
- 带有Swift 5.9+的Xcode (如果您希望严格并发,则为Swift 6模式) — 从App Store安装Xcode
- 技能已安装 — /plugin marketplace添加kylehughes/the-unofficial-swift-concurrency-migration-skill
步骤
-
要求提供迁移计划引用Swift并发迁移指南,指导我将NetworkService.swift迁移到async/await。✓ 已复制→ 指南中已命名文章的计划引用
-
分步应用从公共API表面开始—将completion-handler方法转换为async/await。✓ 已复制→ 代码使用惯用的异步API ,而不是包装器回调
-
处理取消和隔离添加任务取消并决定缓存的参与者隔离。✓ 已复制→ 正确的Task.checkCancellation +显式参与者隔离
结果: 模块迁移得很干净,其推理与苹果自己的指导有关。
注意事项
- 在不修复所有权的情况下将回调包装在withCheckedContinuation中 — 首先迁移根API ;不要将延续保留为永久桥接