1

マントル モデルを作成するときに、辞書内のキーを無視しようとしています。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 と同じキーを強制するときにのみ呼び出されることにも気付きました。特定のキーを無視できるようにしたい理由は、バックエンド サービスが変更される可能性があり、追加情報が呼び出しに追加されているか、単にまったく無関係であるため、必ずしも更新をロールバックする必要がないためです。

4

1 に答える 1

2

を使用していたのではなく、 を使用していたことが判明しましMTLJSONAdapterinit(dictionary: dictionaryValue, error: ())。正しい方法はMTLJSONAdapter.modelOfClass(MyClass.self, fromJSONDictionary: aDictionary, error: ());、メソッドが実際に使用されるこの方法を使用するJSONKeyPathsByPropertyKeyことです。

于 2015-10-06T03:30:33.717 に答える