gpt4 book ai didi

swift - 将模型保存到 Userdefaults 中会使应用程序 swift 崩溃

转载 作者:行者123 更新时间:2023-11-28 13:35:54 27 4
gpt4 key购买 nike

<分区>

我试图将我的模型类保存在 UserDefault 中,但不断出现错误-[__SwiftValue encodeWithCoder:]: 无法识别的选择器发送到实例 0x2825fc0a0'

我正在使用 codables,下面是我的模型的样子

struct AuthModel: Codable {
let token: String?
let firstName: String?
let lastName: String?
let telephone: String?
let userId: Int?
let email: String?
let isEmailConfirmed: Int?
let isVerified: Int?

enum AuthModelCodingKeys: String, CodingKey {
case token
case firstName = "first_name"
case lastName = "last_name"
case telephone
case userId = "user_id"
case email
case isEmailConfirmed = "is_email_confirmed"
case isVerified = "is_verified"
}

init(from decoder: Decoder) throws {
let container = try decoder.container(keyedBy: AuthModelCodingKeys.self)
token = try container.decodeIfPresent(String.self, forKey: .token)
firstName = try container.decodeIfPresent(String.self, forKey: .firstName)
lastName = try container.decodeIfPresent(String.self, forKey: .lastName)
telephone = try container.decodeIfPresent(String.self, forKey: .telephone)
userId = try container.decodeIfPresent(Int.self, forKey: .userId)
email = try container.decodeIfPresent(String.self, forKey: .email)
isEmailConfirmed = try container.decodeIfPresent(Int.self, forKey: .isEmailConfirmed)
isVerified = try container.decodeIfPresent(Int.self, forKey: .isVerified)
}
}

上面的模型显示了我试图在我的 UserDefault 中保存的内容,但是当它试图保存它时我总是崩溃。

我使用我的用户默认值如下

public func saveCurrentUser(_ user: AuthModel) {
put(user, forKey: userKey)
}

private func put(_ value: Any?, forKey key: String) {
guard let value = value else {
storage.removeObject(forKey: key)
return
}
storage.setValue(NSKeyedArchiver.archivedData(withRootObject: value), forKey: key)
}

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com