Не понимаю по каким причинам PostDeviceUidResponseData.data после конвертации у меня nil
class Params : Decodable {
var param_id: Int?
var name: String?
var value: String?
var description: String?
var type: String?
private enum CodingsKey: String, CodingKey {
case param_id = "param_id"
case name = "name"
case value = "value"
case description = "description"
case type = "type"
}
}
class BaseResponseData: Decodable {
var action: String?
var message: String?
var result: Int?
var params: [Params]?
// Проверяем есть, ли информация
func getFirstParams() -> Params? {
if let vals = params {
for param in vals {
return param
}
}
return nil
}
}
class PostDeviceUidResponseData : BaseResponseData {
var data: Data?
struct Data : Decodable {
var uid: String
}
}
В тоже время если модель выглядит так, то все ок
struct PostDeviceUidResponseData : Decodable {
var data: Data?
var action: String?
var message: String?
var result: Int?
var params: [Params]?
struct Data : Decodable {
var uid: String
}
// Проверяем есть, ли информация
func getFirstParams() -> Params? {
if let vals = params {
for param in vals {
return param
}
}
return nil
}
}
Код конвертации
let message = "{\"result\":0,\"message\":\"\",\"action\":\"getUid\",\"data\":{\"uid\":\"e693ee05705d6bc21e061dd2eb617d2869fbb64d\"},\"params\":null,\"identity\":\"693f75628c881718fd20\"}"
if let jsonData = message.data(using: .utf8) {
let token = try JSONDecoder().decode(PostDeviceUidResponseData.self, from: jsonData)
dump(token)
}
Кто-то может обьяснить что не я не понимаю?