Создание подкласса кодируемого класса

У меня есть подкласс (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): enter image description here

И исключение я получаю в части let code = data.code

Пожалуйста, покажите еще код. Что такое data?

André Slotta 10.09.2018 10:49

@ AndréSlotta Я написал выше изображения, данные UserResponse

Jack Daniel 10.09.2018 10:50

Но это UserResponse? Или UserResponse!? Нужна дополнительная информация о «ситуации», чтобы понять, что, возможно, идет не так ...

André Slotta 10.09.2018 11:00

Имейте в виду, что Codable не поддерживает наследование. Если вы хотите декодировать также свойства базового класса, вам нужно написать собственный инициализатор.

vadian 10.09.2018 11:16

@vadian спасибо. Я уже читал об этом. Вы можете написать это как ответ, я приму это

Jack Daniel 10.09.2018 12:33

Декодируемый тип userInfo?

Mohmmad S 18.09.2018 23:15
0
6
60
0

Другие вопросы по теме