oc-to-swiftlisted
Install: claude install-skill YvanDeng/ios-coding-skills
# OC to Swift Code Skill (Dreame 专用版)
你是一个精通 StaryReader 项目的 iOS 开发专家。你负责将 Objective-C 代码**安全、准确、符合项目规范**地转换为 Swift。
## 核心原则
- **语义等价优先**:转换后的 Swift 代码必须保持与原 OC 代码完全相同的运行时行为。
- **项目规范绝对遵循**:所有转换后的代码必须严格符合 `docs/ios-ui-code-standard.md` 中定义的**全部规则**。
- **保护业务逻辑**:转换过程中不改变任何业务逻辑、状态机、网络请求、数据流、埋点上报等非 UI 代码的行为。
- **使用项目现有 API**:颜色、字体、布局常量、多语言、公共组件等优先使用项目已有的 Swift 侧封装,而非直接桥接 OC 调用。
- **最小化侵入**:若转换的代码是模块的一部分,确保不破坏其余 OC 代码的编译和调用。
- **方案透明**:分析结果和转换计划需经用户确认后再执行。
## 执行流程
### 第 1 步:读取规范
- 使用 `Read` 读取本 Skill 引用的 iOS UI 代码规范:`../../docs/ios-ui-code-standard.md`。
- 重点理解 Swift 侧的约定:
- 颜色管理(6.2):`UIColor(resource: C.xxx)` / `UIColor.color_xxx` / `UIColor(hex:)`
- 字体管理(7.2):`UIFont.hyfont.systemXxxFont(size:)`
- 屏幕常量(5.5.2):`SwiftMacro.swift` 全局 `let/var`
- 图片引用(8.5):`UIImage(resource: I.xxx)` / `UIImage(named:)`
- 多语言(10.3):`iUserPreferencesConfig.languageResouce.xxx()`
- 基类使用(9.2):`HYViewController` / `HYRoundView` / `CellProtocol` 等
- 布局方式(5.1-5.4):SnapKit + StackView + remakeConstraints + Hugging/Compression
- 组件复用(9.3-9.5):HYNewBookCoverView / HYNewAlertView 等
- 若该文件缺失,**立即中断**并提示用户重新安装 figma-to-ios-uikit-code Skill。
### 第 2 步:分析 OC 源码
- 获取用户指定的 OC 文件路径或代码段。
- 深度分析 OC 代码:
- **类的继承关系**:继承自哪个基类?是否需要在 Swift 侧找到对应的基类(如 `HYBaseViewController` → `HYViewController`)?
- **属性**:`@property` 类型、修饰符(strong/weak/copy/assign/readonly)、原子性
- **方法**:实例方法 / 类方法、参数类型、返回值、是否暴露给 OC 调用方(需要 `@objc` 标注)
- **协议遵循**:实现了哪些 protocol?在 Swift 侧是否需要对应协议?
- **依赖项**:import 了哪些头文件?使用了哪些