2015-10-05 52 views
0

創建地幔模型時,我一直試圖忽略字典中的鍵。 比方說,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方法。