ios frameworks github-mantle

Cómo especificar tipos de objetos secundarios en una NSArray con Mantle



frameworks github-mantle (5)

Si tengo un diccionario como

{ name: "Bob", cars: [ { make: "ford", year: "1972" }, { make: "mazda", year: "2000" } ], }

y dos modelos como:

@interface CarModel : MTLModel @property (nonatomic, strong) NSString *make; @property (nonatomic, strong) NSString *year; @end @interface PersonModel : MTLModel @property (nonatomic, strong) NSString *name; @property (nonatomic, strong) NSArray *cars; @end

¿Cómo uso Mantle para que mi variedad de autos en mi modelo personal sean CarModels?


Ah lo descubrí. Necesitaba agregar un método privado:

+ (NSValueTransformer *)carsTransformer { return [NSValueTransformer mtl_externalRepresentationArrayTransformerWithModelClass:[CarModel class]]; }

y asegúrate de que usé:

[PersonModel modelWithExternalRepresentation:dict];


Una nota sobre:

[NSValueTransformer mtl_JSONArrayTransformerWithModelClass:CarModel.class];

Este método parece estar ahora en desuso. Estoy usando este nuevo método en mi código y parece estar funcionando bien:

[MTLJSONAdapter arrayTransformerWithModelClass:CarModel.class];


+[NSValueTransformer mtl_externalRepresentationArrayTransformerWithModelClass:] está en desuso. La nueva API es +[NSValueTransformer mtl_JSONArrayTransformerWithModelClass:] .

Después de cambiar a la nueva API, los modelos se pueden inicializar con los inicializadores predeterminados proporcionados por, por ejemplo, MTLJSONAdapter .


+ (NSValueTransformer *)carsJSONTransformer { return [NSValueTransformer mtl_JSONArrayTransformerWithModelClass:CarModel.class]; }

Lea más here


+[NSValueTransformer mtl_JSONArrayTransformerWithModelClass:]

Este método está en desuso. El nuevo método es:

+ (NSValueTransformer *)carsTransformer { return [MTLJSONAdapter arrayTransformerWithModelClass:[CarsModel class]]; }