gpt4 book ai didi

swift - 使用 Swift 为可解码类型创建通用数据初始值设定项

转载 作者:行者123 更新时间:2023-12-04 08:18:14 26 4
gpt4 key购买 nike

@objcMembers
public class MyResponse: NSObject, Codable {
public let id: String?
public let context: String?
public let results: [MyResult]?
}

从类扩展中的数据解析 MyResponse 的正确方法是什么?

我尝试了以下操作,但出现错误“无法分配给值:'self' 是不可变的。无法将类型“MyResponse”的值分配给类型“Self”。”

extension MyResponse {
public convenience init(data: Data) throws {
self = try JSONDecoder().decode(MyResponse.self, from: data)
}
}

最佳答案

您可以扩展Decodable 协议(protocol)并创建一个通用初始化器:

extension Decodable {
public init(data: Data, using decoder: JSONDecoder = JSONDecoder()) throws {
self = try decoder.decode(Self.self, from: data)
}
}

关于swift - 使用 Swift 为可解码类型创建通用数据初始值设定项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65615354/

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