Swift 在UserDefault问题中保存自定义词典
如何在UserDefault中保存自定义词典,我尝试通过PropertyStencoder,但出现了一个错误Swift 在UserDefault问题中保存自定义词典,swift,Swift,如何在UserDefault中保存自定义词典,我尝试通过PropertyStencoder,但出现了一个错误 struct pointDict { let id: Int let name: String let type: Int8 } var pointsPlane: [pointDict] = [] ... UserDefaults.standard.set(try? Pro
struct pointDict {
let id: Int
let name: String
let type: Int8
}
var pointsPlane: [pointDict] = []
...
UserDefaults.standard.set(try? PropertyListEncoder().encode(pointsPlane), forKey:"pointsPlane")
Class 'PropertyListEncoder' requires that 'ViewControllerPlane.pointDict' conform to 'Encodable'
错误明确说明您必须符合
pointDict
到可编码的。那就这么做吧
struct PointDict: Encodable { // also make struct model name's first letter uppercased.
let id: Int
let name: String
let type: Int8
}
另外,不要使用try?
,使用dotry-catch
并处理抛出的错误
do {
UserDefaults.standard.set(try PropertyListEncoder().encode(pointsPlane), forKey:"pointsPlane")
} catch { print(error) }
符合可编码状态,如错误状态。您已经找到了解决方案。除此之外,在声明类或结构时应该使用camel case。