首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用@AppStorage的字典扩展

使用@AppStorage的字典扩展
EN

Stack Overflow用户
提问于 2022-04-23 18:05:21
回答 1查看 106关注 0票数 1

我知道在使用带有@AppStorage的字典时,我需要使DictionaryRawRepresentable保持一致。下面是我所得到的最远的。

代码语言:javascript
复制
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
    }

}

扩展编译。但是,当我声明一本空字典时,它就没用了:

代码语言:javascript
复制
@AppStorage private var data :  [String:String] = [:]

错误消息是Missing argument for parameter #2 in call

密码怎么了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-23 18:17:47

您丢失了存储的字符串键:

代码语言:javascript
复制
@AppStorage("data") private var data :  [String:String] = [:]
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71982372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档