Класс свойства Mantle, основанный на другом свойстве?
Как я могу использовать Github Mantle для выбора класса свойств на основе другого свойства в том же классе? (или, в худшем случае, другая часть объекта JSON).
Например, если у меня есть такой объект:
{
"content": {"mention_text": "some text"},
"created_at": 1411750819000,
"id": 600,
"type": "mention"
}
Я хочу сделать такой трансформатор:
+(NSValueTransformer *)contentJSONTransformer {
return [MTLValueTransformer transformerWithBlock:^id(NSDictionary* contentDict) {
return [MTLJSONAdapter modelOfClass:ETMentionActivityContent.class fromJSONDictionary:contentDict error:nil];
}];
}
Но словарь, передаваемый преобразователю, содержит только часть «содержимого» JSON, поэтому у меня нет доступа к полю «тип». Есть ли способ доступа к остальной части объекта? Или как-то основать класс модели «контент» на «тип»?
Ранее я был вынужден делать взломать такие решения:
+(NSValueTransformer *)contentJSONTransformer {
return [MTLValueTransformer transformerWithBlock:^id(NSDictionary* contentDict) {
if (contentDict[@"mention_text"]) {
return [MTLJSONAdapter modelOfClass:ETMentionActivityContent.class fromJSONDictionary:contentDict error:nil];
} else {
return [MTLJSONAdapter modelOfClass:ETActivityContent.class fromJSONDictionary:contentDict error:nil];
}
}];
}