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

在 Swift 中从 UserDefaults 解码自定义结构的数组

如何解决在 Swift 中从 UserDefaults 解码自定义结构的数组

我想对我自己的结构体进行编码,我想将其保存在 UserDefaults 中,然后将其读出(解码后)。我知道如何编码第一部分(以下),这意味着如何编码数组并将其保存在 Userdefaults 中。

struct mystruct: Codable {
var int: Int
var string: String
}

var array = [mystruct(int: 2,string: "Example"),mystruct(int: 5,string: "Other Example")]

var encodedArray = try JSONEncoder().encode(array)

UserDefaults.standard.set(encodedArray,forKey: "array")

我也知道如何从 Userdefaults 取回数据:

var newArray = UserDefaults.standard.data(forKey: "array")

但我不知道如何解码整个数组...

解决方法

您只需要将自定义结构数组类型 case4 传递给 [MyStruct].self


JSONDecoder

struct MyStruct: Codable {
    let int: Int
    let string: String
}

let myStructures: [MyStruct] = [.init(int: 2,string: "Example"),.init(int: 5,string: "Other Example")]

这将打印:

[MyStruct(int: 2,MyStruct(int: 5,string: "Other Example")]

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