我让 GPT 5.1 Pro 思考了 13 分钟,才把这篇文章转换成最适合你的 AGENTS.md 文件的、词干最密集的摘要。结果如下: ## AI 生成的 Swift/SwiftUI 清理规则 在编辑或生成此仓库的 Swift/SwiftUI 代码时,请在提交更改之前,使用以下清单严格规范代码: - 现代 API:将 `NavigationView` 替换为 `NavigationStack`;将 `navigationBarTitle`/`navigationBarItems` 替换为 `navigationTitle`/`toolbar`;优先使用新的修饰符而不是已弃用的修饰符;尽可能优先使用 Swift 并发(`async`/`await`、`Task`)而不是回调式 API。 - 状态正确性:对局部值状态使用 `@State`,对父级拥有的状态使用 `@Binding`,对视图中创建的长期存在的引用类型使用 `@StateObject`,对注入的引用类型使用 `@ObservedObject`;永远不要在 `body` 中创建 `ObservableObject` 实例。 - 可选值和错误:移除 `!` 和 `try!`,除非在真正无法恢复的情况下;使用 `if let` / `guard let` / `??` 和 `do/try/catch`;通过显式错误路径(结果类型、错误视图、警报)来暴露失败,而不是静默失败。 - 集合和标识:在 `List`/`ForEach` 中,优先使用稳定的 ID(`id: \.id` 或专用的 `id` 属性),而不是引用类型上的 `0..<count` 和 `\.self`;如果存储属性可以满足要求,则避免在 `body` 中重新创建集合。 - 视图结构:扁平化过度嵌套的 `VStack`/`HStack`/`ZStack`;用对齐、填充和适当的容器替换由许多 `Spacer()` 构建的布局;将重复的子树提取到可重用的视图中,而不是复制布局。 - 类型擦除:除非你真的需要异构视图类型,否则避免使用 `AnyView` 和其他不必要的类型擦除;优先选择具体的视图类型和组合。 - 并发和线程:标记影响 UI 的入口点 `@MainActor`;避免阻塞主线程;使用异步任务将耗时的工作移出主 Actor;确保完成处理程序和任务不会不必要地捕获强 `self`。 - 副作用:从 `body` 中移除网络调用、磁盘 I/O、计时器和其他副作用;将它们移至视图模型、服务或由生命周期修饰符(`task`、`onAppear` 等)触发的显式任务中。 - 性能陷阱:避免在 `body` 中直接创建 `DateFormatter`、`NumberFormatter`、随机值和繁重的计算;将缓存放在静态属性或专用助手上;避免不必要地复制大型数据结构。 - 风格与规范:删除未使用的导入、变量和参数;使用显式访问控制;保持命名与 Swift 规范一致;通过 `swift-format`/Xcode 格式化预期运行代码,以便生成的代码与现有风格融合。
正在加载线程详情
正在从 X 获取原始推文,整理成清爽的阅读视图。
通常只需几秒钟,请稍候。