SuperAPI AI 工具集

swift-concurrency-expert

编程与开发

查看项目

更新于 10-15 18:45

技能介绍

用途:该技能面向 Swift 6.2+ 代码库,帮助审查并修复 Swift Concurrency 相关问题,在保持既有行为基本不变的前提下,应用 actor 隔离、Sendable 安全与现代并发模式。

主要能力与工作流:

  1. 问题甄别:捕获编译器诊断信息与出问题的符号,判断当前 actor 上下文(@MainActor、actor、nonisolated)以及是否启用了默认 actor 隔离模式,并确认代码是 UI 绑定还是应在主 actor 之外运行。
  2. 应用最小安全修复:优先选择在满足数据竞争安全的同时保留原有行为的改法。常见修复包括:UI 绑定类型用 @MainActor 标注类型或相关成员;主 actor 类型上的协议遵循改为隔离遵循(如 extension Foo: @MainActor SomeProtocol);全局/静态状态用 @MainActor 保护或移入 actor;后台工作放入 nonisolated 类型上的 @concurrent async 函数,或用 actor 守护可变状态;Sendable 错误优先使用不可变/值类型,仅在确有必要且正确时添加 Sendable 遵循,避免 @unchecked Sendable,除非能证明线程安全。

Swift 6.2 相关要点:支持在模块级设置默认 actor 隔离模式(如 -default-isolation MainActor);@concurrent 可显式标记应并行运行的 async 函数;Sendable 推断得到改进,涵盖含 Sendable 字段的 frozen struct、含不可变 Sendable 属性的 final class 以及 actor 隔离闭包。

使用方式与检查清单:修复前先识别 actor 上下文、检查跨 actor 边界的值是否满足 Sendable、确认修复是否会改变代码执行时机或位置、采用满足编译器的最小改动、避免滥用 @unchecked。

限制与注意:应避免滥用 @unchecked Sendable、阻塞主 actor、无必要的 actor 跳转等反模式。该技能要求具备 Swift 6.2+ 环境与相关编译器诊断信息。除上述内容外,价格、安装命令、支持平台等细节暂未提供。