Overcoat: Mapeo de múltiples types de respuestas del server.

No puedo entender cómo asignar la matriz de respuesta cuando la respuesta JSON tiene diferentes keys de sobre:

EJEMPLO Respuestas:

"response": { "currencies": [ { "id": 5, "name": "British Pound", "shortName": "GBP", "symbol": "£", "symbolPreceedsValue": true }, { "id": 6, "name": "US Dollar", "shortName": "USD", "symbol": "$", "symbolPreceedsValue": true }, { "response": { "countries": [ { "id": 9, "name": "United Kingdom", "shortName": "GB", "isMajorMarket": true }, { "id": 10, "name": "USA", "shortName": "US", "isMajorMarket": true }, 

He configurado un object ServerResponse:

 @implementation ServerResponse +(NSString *)resultKeyPathForJSONDictionary:(NSDictionary *)JSONDictionary { return @"response"; } @end // And setup what I believe to map the response for the Country + (NSDictionary *)responseClassesByResourcePath { return @{ @"countries": [SPCCountry class] }; } 

Da como resultado que se cree un object ONE SPCCountry con datos nulos. Quiero una LISTA de objects SPCCountry / SCCurrency.

RESPUESTA: Para cada ruta de respuesta única, debe crear una subclass OCVResponse y devolver la class y la ruta en el método de class:

 + (NSDictionary *)responseClassesByResourcePath { return @{ @"/install": [ServerResponse class], @"/countries": [SPCCountryResponse class], @"/currencies": [SPCCurrencyResponse class] }; } 

La implementación de las classs de respuesta solo necesita implementarse:

 @implementation SPCCountryResponse +(NSString *)resultKeyPathForJSONDictionary:(NSDictionary *)JSONDictionary { return @"response.countries"; } @end 

Intereting Posts