我正在使用@AppStorage一個String屬性。更改屬性的值時,視圖會自動更新以反映預期的更改。但是,大多數時候它并沒有堅持下去UserDefaults。我覺得我在這里錯過了一些東西的想法很愚蠢。還有人看到這個嗎?
腳步:
- 啟動應用程式
- 改變價值
- 殺死并重新啟動應用程式
- 將值更改為其他內容
- 殺死并重新啟動應用程式
環境:
- Xcode 13.4 (13F17a)
- iOS 15.5 - iPhone 13 Pro 模擬器
非常簡單的例子:
struct ContentView: View {
@AppStorage("token") var token: String = ""
var body: some View {
Form {
Section("Token") {
Text(token)
}
Section("Debug") {
Button("Update 01") {
token = "token-01"
}
Button("Update 02") {
token = "token-02"
}
}
}
}
}

uj5u.com熱心網友回復:
這種典型情況可能發生在開發階段,但不會發生在生產階段,因為在應用程式被系統終止之前,用戶沒有像 Xcode 和 UserDefault 類這樣的停止按鈕將更改寫入磁盤。
所以我們知道用戶的默認資料庫是異步寫入磁盤的,所以當我們從 Xcode 上的停止按鈕停止應用程式時,我們對默認值所做的更改可能不會寫入資料庫,您可以通過停止應用程式自己嘗試通過刷卡,您的資料將在下次啟動時存盤,但當您從 Xcode 停止時,您的資料將不會被保存
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/481290.html
