如何在带有Mantle的NSArray中指定子对象类型

问题描述:

如果我有一个字典

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

和两个模型如:

@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

如何使用Mantle以便我的汽车阵列在我的人模型中是CarModels?

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]];
}

并确保我使用:

[PersonModel modelWithExternalRepresentation:dict];