27

次のような辞書があれば

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

および次のような 2 つのモデル:

@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 になるように Mantle を使用するにはどうすればよいですか?

4

5 に答える 5

21

あ、わかった。プライベート メソッドを追加する必要がありました。

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

そして、私が使用したことを確認してください:

[PersonModel modelWithExternalRepresentation:dict];
于 2012-12-14T18:45:28.900 に答える
13

+[NSValueTransformer mtl_externalRepresentationArrayTransformerWithModelClass:]廃止されました。新しい API は+[NSValueTransformer mtl_JSONArrayTransformerWithModelClass:].

新しい API に切り替えた後、モデルは、たとえば によって提供されるデフォルトの初期化子で初期化できますMTLJSONAdapter

于 2013-07-24T08:59:46.533 に答える
12

についてのメモ:

[NSValueTransformer mtl_JSONArrayTransformerWithModelClass:CarModel.class];

このメソッドは現在非推奨になっているようです。コードでこの新しいメソッドを使用していますが、問題なく動作しているようです。

[MTLJSONAdapter arrayTransformerWithModelClass:CarModel.class];
于 2015-06-09T14:33:13.267 に答える