@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/