我讓 GPT 5.1 Pro 思考了 13 分鐘,才把這篇文章轉換成最適合你的 AGENTS.md 檔案的、詞幹最密集的摘要。結果如下: ## AI 產生的 Swift/SwiftUI 清理規則 在編輯或產生此倉庫的 Swift/SwiftUI 程式碼時,請在提交變更之前,請使用下列清單嚴格規範程式碼: - 現代 API:將 `NavigationView` 替換為 `NavigationStack`;將 `navigationBarTitle`/`navigationBarItems` 替換為 `navigationTitle`/`toolbar`;優先使用新的修飾符而不是已棄用的修飾符;盡可能優先使用 Swift ``可以使用 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 取得原始推文,整理成清爽的閱讀畫面。
通常只需幾秒鐘,請稍候。