Я анализирую API, используя универсальную модель по умолчанию. Ниже приведен мой BaseModel Class
class BaseModel<T : Codable>: Codable {
var StatusCode : Int
var StatusMessage : String
var Data : T
var ErrorMessage : String
}
. Я не использую необязательные, чтобы избежать разворачивания, вместо этого я предоставляю ему некоторое значение по умолчанию со следующим инициализатором.
required init(from decoder: Decoder) throws {
do {
let container = try decoder.container(keyedBy: CodingKeys.self)
self.StatusCode = try container.decodeIfPresent(Int.self, forKey: .StatusCode) ?? -1
self.StatusMessage = try container.decodeIfPresent(String.self, forKey: .StatusMessage) ?? "no message"
self.Data = try container.decodeIfPresent(T.self, forKey: .Data) ??
self.ErrorMessage = try container.decodeIfPresent(String.self, forKey: .ErrorMessage) ?? "default error"
}
}
Я присваиваю пустую строку для строковых значений и -1 для значений Int. Я застрял, присваивая какое-то значение Generic? Какой тип данных общего назначения можно принять, если я назначу ""
пустую строку для строки, а не для гниды?