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