微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在某些设备上,数据未保存在 UserDefaults

如何解决在某些设备上,数据未保存在 UserDefaults

截图:

When the image is saved,it is displayed in the table view

Data lost after restart the app and table view is empty

我有自己的数据模型,我使用编码和解码将其存储在 UserDefualts 中的特定键下。 有用于数据管理的UserDefaults 扩展

extension UserDefaults {
    func saveResult(result: ComputedResult) {
        if var results = try? results(forKey: "results") {
            removeAllResults()
            results.append(result)
            try? set(results: results,forKey: "results")
        } else {
            try? set(results: [result],forKey: "results")
        }
    }
    
    func updateResults(result: ComputedResult,index: Int) {
        var newResults = try! results(forKey: "results")
        removeAllResults()
        newResults[index] = result
        try? set(results: newResults,forKey: "results")
    }
    
    func removeResult(index: Int) {
        var newResults = try! results(forKey: "results")
        removeAllResults()
        newResults.remove(at: index)
        try? set(results: newResults,forKey: "results")
    }
    
    func removeAllResults() {
        removeObject(forKey: "results")
    }
}

函数用于从 UserDefaults 中获取数据

func fetchResults() {
    self.results = []
    self.results = try! UserDefaults.standard.results(forKey: "results")
}

我不知道为什么数据不能只保存在某些设备上。 请帮我解决这个问题

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。