我已經從 YouTube 決議了一個 JSON,并不是陣列中的每個專案都一定有某些 Key:Value 對,因此我得到了一個致命錯誤。我唯一的解決方案是從我的模型中注釋掉某些鍵:值。但是我想要一個更合適的解決方案,但我不確定動態保護丟失鍵:值的正確方法。
任何人都可以幫助我在 swiftui 中執行此操作的方法。
uj5u.com熱心網友回復:
首先,解碼 JSON 并不特定于 SwiftUI,SwiftUI 唯一使用的時候是與用戶界面互動時。
您可以在自定義初始化程式中為您的struct或使用類似下面的內容class
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
latitude = try values.decodeIfPresent(Double.self, forKey: .latitude)
}
請求型別的解碼值,如果解碼器沒有與給定鍵關聯的條目,或者該值為空值,則為 nil。
https://developer.apple.com/documentation/swift/keyeddecodingcontainer/2893445-decodeifpresent
以下是有關解碼和編碼自定義型別的 Apple 檔案
https://developer.apple.com/documentation/foundation/archives_and_serialization/encoding_and_decoding_custom_types
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/436480.html
上一篇:使用pegen開發決議器:無輸出
