如果我有一本字典一样
{
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
如何使用幔让我在我的个人汽车模型的阵列CarModels?
阿想通了。 我需要添加一个私有方法:
+ (NSValueTransformer *)carsTransformer
{
return [NSValueTransformer mtl_externalRepresentationArrayTransformerWithModelClass:[CarModel class]];
}
并确保我使用:
[PersonModel modelWithExternalRepresentation:dict];
+[NSValueTransformer mtl_externalRepresentationArrayTransformerWithModelClass:]
已被弃用。 新的API +[NSValueTransformer mtl_JSONArrayTransformerWithModelClass:]
。
切换到新的API后,该模型可以通过,例如,提供的缺省初始化进行初始化MTLJSONAdapter
。
上的注意事项:
[NSValueTransformer mtl_JSONArrayTransformerWithModelClass:CarModel.class];
这种方法似乎现在已过时。 我用我的代码这种新方法,它似乎工作得很好:
[MTLJSONAdapter arrayTransformerWithModelClass:CarModel.class];
+ (NSValueTransformer *)carsJSONTransformer {
return [NSValueTransformer mtl_JSONArrayTransformerWithModelClass:CarModel.class];
}
阅读更多在这里
+[NSValueTransformer mtl_JSONArrayTransformerWithModelClass:]
此方法已被弃用。 新方法是:
+ (NSValueTransformer *)carsTransformer
{
return [MTLJSONAdapter arrayTransformerWithModelClass:[CarsModel class]];
}