Мантия игнорировать ключ в 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
метод фактически используется.