MTLModels внутри MTLModels?
У меня есть веб-сервис, который возвращает JSON объекта, и в этом объекте есть список других объектов. Как я могу заставить Mantle создать объект для каждого из этих вложенных объектов, а не давать мне словарь для каждого из них?
1 ответ
Решение
Это можно сделать с помощью mtl_JSONDictionaryTransformerWithModelClass:
Транформер, представленный Mantle некоторое время назад.
Давайте посмотрим на пример, взятый из самого readme проекта Mantle:
@interface GHIssue : MTLModel <MTLJSONSerializing>
@property (nonatomic, strong, readonly) GHUser *assignee;
@end
@implementation GHIssue
+ (NSDictionary *)JSONKeyPathsByPropertyKey {
return @{
@"assignee": @"assignee",
};
}
+ (NSValueTransformer *)assigneeJSONTransformer {
return [NSValueTransformer mtl_JSONDictionaryTransformerWithModelClass:[GHUser class]];
}
@end
Если предположить, GHUser
это подкласс MTLModel
в соответствии с MTLJSONSerializing
протокол, все должно работать отлично.
ОБНОВЛЕНИЕ: вышеупомянутое решение устарело. Правильный метод для использования сейчас будет
return [MTLJSONAdapter dictionaryTransformerWithModelClass:GHUser.class];
внутри метода assigneeJSONTransformer.