Metodología similar al método de pérdida en el objetivo-c (es decir, delegación dinámica en tiempo de ejecución)

Estoy tratando de transformar una llamada de método en otra dinámicamente (en tiempo de ejecución).

Por ejemplo, me gustaría lo siguiente:

[obj foo]

delegar a:

[obj getAttribute: @"foo"]

(Me gustaría hacer esto dinámicamente ya que no sé de antemano cuáles serán los nombres o atributos de esos métodos).

Veo que hay un gancho en:

 - (id) forwardingTargetForSelector: (SEL) aSelector

Sin embargo, eso solo parece funcionar para la delegación, quiero mantener el objeto como "self" y transformar los argumentos del método.

¿Dónde debo buscar este tipo de comportamiento? ¿Es posible incluso en obj-c?

Respuestas a la pregunta(1)

Su respuesta a la pregunta