2016-06-11 2 views
0

У меня есть объект JSON, как так:Как включить массив в объект модели с мантией?

{ 
    "name": "Brendan", 
    "images": ["some.url.to.image1", 
      "some.url.to.image2", 
      "some.url.to.image3"] 
} 

Мой класс выглядит следующим образом:

@interface MyModel : MTLModel <MTLJSONSerializing> 

@property (nonatomic, copy) NSString *name; 
@property (nonatomic, copy) NSArray *images; 

@end 

@implementation MYModel 

+ (NSDictionary*)JSONKeyPathsByPropertyKey { 
    return @{ 
      @"name" : @"name", 
      @"images" : @"images" 
      }; 
} 

@end 

я могу проверить, что объект имеет MyModel name правильно установлен, но images установлен в null. Как я могу заполнить массив строк мантией?

+0

Это в конечном итоге работает как есть. Я закончил тем, что допустил ошибку, используя неверный случай JSONKey для «изображений» в моей версии вышеуказанного кода. – Stunner

ответ

0

Обновление: По-видимому, mtl_externalRepresentationArrayTransformerWithModelClass: устарел. Это может сработать:

[MTLJSONAdapter arrayTransformerWithModelClass:[NSString class]]; 

Вы должны указать трансформатор значение для ключа images в качестве трансформатора значения массива. Вы можете сделать это с помощью метода класса (на вашем классе MyModel) с правильным именем. Что-то вроде этого может сработать. Я не тестировал код.

+ (NSValueTransformer *)imagesTransformer 
{ 
    return [NSValueTransformer mtl_externalRepresentationArrayTransformerWithModelClass:[NSString class]]; 
} 
+0

Код, который вы предоставили, не скомпилирован из-за 'mtl_externalRepresentationArrayTransformerWithModelClass' не найден. Я попробовал этот 'return [MTLJSONAdapter arrayTransformerWithModelClass: [NSString class]];' и приложение просто сбой в этой строке. Консоль выплюнула: '*** Ошибка утверждения в + [MTLJSONAdapter dictionaryTransformerWithModelClass:], /Users/dcaunt/Projects/Mantle/Mantle/MTLJSONAdapter.m: 476'. – Stunner