У меня есть подкласс (BaseResponse
) Decodable
с некоторыми параметрами для разбора json. И я создал подкласс (UserResponse
) BaseResponse
, но я получаю исключение времени выполнения в коде без каких-либо поясняющих ошибок.
это мой код:
class BaseResponse: Decodable {
var code: ResultCode?
var asanCode: AsanResultCode?
var message: String?
enum CodingKeys: String, CodingKey {
case code = "Code"
case asanCode = "AsanResultCode"
case message = "Message"
}
}
class UserResponse: BaseResponse {
var userInfo: UserInfo?
enum CodingKeys: String, CodingKey {
case userInfo = "Info"
}
}
А это ошибка (data == UserResponse
):
И исключение я получаю в части let code = data.code
@ AndréSlotta Я написал выше изображения, данные UserResponse
Но это UserResponse
? Или UserResponse!
? Нужна дополнительная информация о «ситуации», чтобы понять, что, возможно, идет не так ...
Имейте в виду, что Codable
не поддерживает наследование. Если вы хотите декодировать также свойства базового класса, вам нужно написать собственный инициализатор.
@vadian спасибо. Я уже читал об этом. Вы можете написать это как ответ, я приму это
Декодируемый тип userInfo?
Пожалуйста, покажите еще код. Что такое
data
?