我知道在使用带有@AppStorage的字典时,我需要使Dictionary与RawRepresentable保持一致。下面是我所得到的最远的。
extension Dictionary: RawRepresentable where Key == String, Value == String {
public init?(rawValue: String) {
guard let data = rawValue.data(using: .utf8), // convert from String to Data
let result = try? JSONDecoder().decode([String:String].self, from: data)
else {
return nil
}
self = result
}
public var rawValue: String {
guard let data = try? JSONEncoder().encode(self), // data is Data type
let result = String(data: data, encoding: .utf8) // coerce NSData to String
else {
return "[:]" // empty Dictionary respresented as String
}
return result
}
}扩展编译。但是,当我声明一本空字典时,它就没用了:
@AppStorage private var data : [String:String] = [:]错误消息是Missing argument for parameter #2 in call
密码怎么了?
发布于 2022-04-23 18:17:47
您丢失了存储的字符串键:
@AppStorage("data") private var data : [String:String] = [:]https://stackoverflow.com/questions/71982372
复制相似问题