Я создал сетевой менеджер, который получает ответ JSON и преобразует его в объект Swift,
protocol HTTPResponse: Codable {
}
class UserResponse: HTTPResponse {
var name: String?
}
let responseObj = try? JSONDecoder().decode(T.self, from: response.data!)
, где T
является наследником HTTPResponse
I необходимо иметь возможность создать «пустой» объект UserResponse, экземпляр, в котором все переменные класса: nil
Я изменил HTTPResponse
с protocol
на class
и добавил пустой required init() {}
к нему.
Это позволяет мне вызвать T()
и получить экземпляр UserResponse
, но теперь JSONDecoder
больше не анализирует JSON, он также создает экземпляры, где все переменные nil
Как я могу достичь конечного результата, при котором JSONDecoder
работает хорошо, и я могу создавать экземпляры-заглушки моих HTTPResponse
дочерних классов?
Я работаю с swift 4.2