How to specify child objects type in an NSArray with Mantle How to specify child objects type in an NSArray with Mantle ios ios

How to specify child objects type in an NSArray with Mantle


Ah figured it out. I needed to add a private method:

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

and make sure I used:

[PersonModel modelWithExternalRepresentation:dict];


+[NSValueTransformer mtl_externalRepresentationArrayTransformerWithModelClass:] is deprecated. The new API is +[NSValueTransformer mtl_JSONArrayTransformerWithModelClass:].

After switching to the new API, the models can be initialized with the default initializers provided by, e.g., MTLJSONAdapter.


A note on:

[NSValueTransformer mtl_JSONArrayTransformerWithModelClass:CarModel.class];

This methods seems to now be deprecated. I'm using this new method in my code and it appears to be working just fine:

[MTLJSONAdapter arrayTransformerWithModelClass:CarModel.class];