Ok, así que decir que tengo una propiedad en una clase:¿Cómo se determina la clase de la propiedad Objective-C?
@interface MyObject : NSObject {
MyOtherObject *someOtherObject;
}
@property (nonatomic, copy) MyOtherObject *someOtherObject;
@end
Estoy intentando crear algo deserializar una respuesta del API en los objetos correctos sin definir explícitamente qué clase de cada atributo API de Google Maps a. Entonces, ¿hay alguna forma de que averigüe qué clase es una propiedad, incluso si es nil
? Lo que estoy buscando es algún método como [MyObject classForProperty:@"someOtherObject"]
que devolvería un objeto Class
. Nota: No estoy buscando isKindOfClass:
o simplemente class
, ya que no funcionarán en un valor de nil
.
En el peor de los casos, puedo definir manualmente una lista de clases de propiedades, pero sería muy bueno si hubiera alguna forma de hacerlo.
Ewww ... realmente no quieres hacer eso. La cadena de codificación de tipo '@ property' es terriblemente frágil, es probable que cambie en futuros compiladores, y, en general, este tipo de patrón de codificación se desaconseja. Es mucho mejor crear una capa de descripción de modelo propia (o usar datos básicos). – bbum
¿Por qué no utilizar codificación de clave-valor para deserializar? –
bbum - es bueno saber, tal vez termine haciendo manualmente la descripción del modelo –