SuperAPI AI 工具集

axiom-swiftui-debugging

编程与开发

查看项目

更新于 10-16 00:23

技能介绍

用途:该技能面向 SwiftUI 调试场景,帮助开发者系统排查三类常见问题——视图不更新、预览崩溃、布局异常,通过症状驱动的决策树避免误诊。

主要能力:

  1. 视图不更新:按四类根因排查——结构体直接可变(需整体重新赋值)、绑定身份丢失(误用 .constant 或每次新建 Binding,iOS 17+ 可用 @Bindable)、视图意外重建(条件分支导致身份变化,可用 .opacity() 或稳定 .id())、缺少观察者(iOS 17+ 用 @Observable 配合 @State/@Environment,旧版用 @StateObject/@ObservedObject/@EnvironmentObject)。
  2. 预览崩溃:区分缺少依赖(用 .environment()/.environmentObject() 补齐)、状态初始化失败(数组越界、强制解包)、Xcode 缓存损坏(可依次重启预览 Cmd+Option+P、重启 Xcode、手动清理 Derived Data、重新构建 Cmd+B)。
  3. 布局问题:给出常见模式,如 ZStack 层叠用 zIndex 控制、GeometryReader 需用 frame 约束尺寸。
  4. 调试工具:使用 Self._printChanges() 判断 body 被调用的原因(@self changed 表示视图值变化,属性名表示 @State 触发,无输出表示 body 未被调用)。注意该 API 以下划线开头,可能在未来版本被移除,切勿随应用上架提交,仅调试期使用。

使用方式:从可观察症状出发,先在最小预览中复现,再按决策树逐项排除;必要时结合 LLDB 执行 expression Self._printChanges()。

适用场景:视图不按预期更新、预览无法加载或立即崩溃、特定设备布局异常。若为运行时崩溃、构建失败或环境诊断,应改用 xcode-debugging 类技能;涉及 async/await 或 MainActor 问题,应改用 Swift 并发相关技能。

限制:要求 Xcode 26+、iOS 17+(iOS 14–16 的旧模式仍有效);资料未提供价格、平台支持范围及安装命令等信息。