La creación de classs separadas para estructuras de datos simples es excesiva en Objective-C

Estoy creando un simple cliente de service web en Objective-C y descubrí que crear una class separada para cada tipo de respuesta del service web podría ser una exageración. Quizás esto sea porque Objective-C tiene dos files: H & M.

Aquí hay una muestra de respuestas del service web:

{"name": "John", status: "OK"} 

o

 {"total": "5500", status: "OK"} 

o más complejo

 {"location": {"x": "140", "y": "90", "z": "0"}, "color": "networking", status: "OK"} 

Quiero crear classs separadas para cada respuesta, por ejemplo, NameResponse, TotalResponse, LocationInfoResponse y subclasss de la class Response.

Estoy seguro de que en Java sería bastante compacto para crear algunas classs, pero no estoy seguro acerca de Objective-C.

ACTUALIZACIÓN 1 Una razón para usar classs sobre NSDictionary es que el código es más seguro y está mejor definido, por ejemplo:

creo

 response.name 

es mejor que

 json valueForKey: "name" 

¿No es así?

Por favor, ¿cómo harías en la respuesta y es una class por cada respuesta es una exageración en este caso?

Tener su model de datos claramente especificado nunca es una exageración. Y los types de datos formales son el mejor tipo de especificación: ¡ya están implementados!

Si las respuestas del service web se transfieren entre capas de su aplicación, use classs. Si el scope de su uso es lo suficientemente pequeño, un NSDictionary podría ser aceptable.

Para una colección de valor de nombre, un object de dictionary puede ser útil. Si su trabajo ObjC está en una plataforma de Apple, considere NSDictionary .

De hecho, me sorprende que su analizador JSON requiera classs específicas. JSON mapea bastante limpio en las classs de Cacao: tiene su NSDictionary para objects, NSArray para matrices, NSString y NSNumber para escalares.

Las classs de Objective-C no son pesadas, la subsorting no es un problema de performance. Puedes crear una class abstracta y poner tus campos base allí. Luego subclass según sea necesario para agregar campos, henetworkingando, ya que tiene sentido en el path.

Dependiendo de sus necesidades, simplemente analizar el Json en un NSArray / NSDictionary puede funcionar bien. A continuación, puede usar valueForKeyPath: para recorrer routes y get valores específicos de su colección raíz. Encuentro esta solución elegante en collections complejas que usan una composition pesada. Use #define o const para crear las keys de ruta para que sean fáciles de cambiar y puede get la validation de las keys de time de compilation.

http://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Protocols/NSKeyValueCoding_Protocol/Reference/Reference.html#//apple_ref/occ/instm/NSObject/valueForKeyPath :