If I have a dictionary like
{ name: "Bob", cars: [ { make: "ford", year: "1972" }, { make: "mazda", year: "2000" } ], }
and two models like:
@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
How do I use Mantle so that my array of cars in my person model are CarModels?
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
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With