Мантия игнорировать ключ в JSON

Я пытался игнорировать ключ внутри словаря при создании модели мантии. Допустим, что JSON содержит:

{
    prop1:"my prop",
    prop2:"my prop2"
}

изначально у меня есть модель с

class MyModel: MTLModel, MTLJSONSerializing {


    //MARK: Model properties

    var prop1: String!

    class func JSONKeyPathsByPropertyKey() -> [NSObject : AnyObject]! {

        return ["prop1":"prop1"]
    }
}

Проблема в том, что я получаю сообщение об ошибке, говорящее: "этот класс не совместим со значением ключа для ключа prop2".

Я также заметил, что JSONKeyPathsByPropertyKey метод не вызывается при инициализации модели со словарем try! super.init(dictionary: dictionaryValue, error: ()), только при генерации JSON из модели, заставляя свойства иметь тот же ключ, что и JSON. Причина, по которой я хочу игнорировать определенные ключи, заключается в том, что бэкэнд-сервис может измениться, и я не обязательно должен откатывать обновления, потому что некоторая дополнительная информация была добавлена ​​к вызову или потому что они просто совершенно не имеют значения.

1 ответ

Решение

Оказывается, я не использовал MTLJSONAdapterвместо этого я делал init(dictionary: dictionaryValue, error: ()), Правильный способ заключается в использовании MTLJSONAdapter.modelOfClass(MyClass.self, fromJSONDictionary: aDictionary, error: ()); таким образом JSONKeyPathsByPropertyKey метод фактически используется.

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