我想在我的模型的init中解析json文件 . 我希望它获取URL并初始化所有存储的属性 . 喜欢:
init(from url: URL) { ... } ,
init(from url: URL) { ... }
所以问题是我该怎么办?我试着这样做:
let info = try JSONDecoder().decode(Model.self, from: data) ,
let info = try JSONDecoder().decode(Model.self, from: data)
但它只是创造了一个新的对象,似乎是一个糟糕的决定 .
谢谢 .
我用你想要的init类创建了一个可编码的结构:
struct NameObject: Codable { let id: Int let name: String enum CodingKeys: String, CodingKey { case id case name } init(id: Int, name: String) { self.id = id self.name = name } init(withData data: Data) { do { self = try JSONDecoder().decode(NameObject.self, from: data) } catch { self.id = 0 self.name = "unknown" // error } } }
1 回答
我用你想要的init类创建了一个可编码的结构: