gpt4 book ai didi

Swift4:新的 Codable 协议(protocol)问题

转载 作者:行者123 更新时间:2023-11-28 10:08:47 25 4
gpt4 key购买 nike

我正在尝试在我的应用程序中使用新的 Codable 协议(protocol),但我无法获得从 JSON 到我的对象的对话。这是我拥有的:

struct LoginCodableEntity: Codable {
let authToken: String? = ""
let status: String? = ""
let errorMessage: String? = ""
let errorCode: Int?


private enum CodingKeys: String, CodingKey {
case status
case errorMessage = "message"
case authToken = "auth_token"
case errorCode = "code"
}
}
Alamofire.request(API.login).responseJSON { (response) in
do {
let decoder = JSONDecoder()
let json = try decoder.decode(LoginCodableEntity.self, from: response.data!)
print("JSON: \(json)")



} catch let err {
print("Err", err)
}

}

我从我的 API 得到了数据和 json var 的响应,得到了对象转换,但其中的字段是空的:

JSON: LoginCodableEntity(authToken: Optional(""), status: Optional(""), errorMessage: Optional(""), errorCode: Optional(800))

我根据 this tutorial 做了这个例子,但这个实现似乎有问题返回的 JSON 如下所示:

JSON: Optional({
code = 910;
message = "Credentials denied";
status = error;
})

最佳答案

您必须从常量中删除默认值:

let authToken: String?
let status: String?
let errorMessage: String?
let errorCode: Int?

常量不能被重新赋值。一旦你给它们一个默认值,它们就不能在解析过程中再次分配。

关于Swift4:新的 Codable 协议(protocol)问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50367313/

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