Mantle-Eigenschaftsklasse basierend auf einer anderen Eigenschaft?

Wie kann ich mit Github Mantle eine Eigenschaftsklasse auswählen, die auf einer anderen Eigenschaft derselben Klasse basiert? (oder im schlimmsten Fall ein anderer Teil des JSON-Objekts).

Zum Beispiel, wenn ich ein Objekt wie dieses habe:

{
  "content": {"mention_text": "some text"},
  "created_at": 1411750819000,
  "id": 600,
  "type": "mention"
}

Ich möchte einen Transformator wie diesen machen:

+(NSValueTransformer *)contentJSONTransformer {
    return [MTLValueTransformer transformerWithBlock:^id(NSDictionary* contentDict) {
          return [MTLJSONAdapter modelOfClass:ETMentionActivityContent.class fromJSONDictionary:contentDict error:nil];
    }];
}

Aber das an den Transformer übergebene Wörterbuch enthält nur den Inhalt des JSON, so dass ich keinen Zugriff auf das Feld "Typ" habe. Gibt es überhaupt Zugriff auf den Rest des Objekts? Oder basiert die Modellklasse von 'content' irgendwie auf dem 'type'?

Ich war zuvor gezwungen, Hack-Lösungen wie diese durchzuführen:

+(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];
        }
    }];
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage