Escritura dinámica, Objective-C, ¿cómo funciona?

Estoy interesado en cómo funciona la escritura dinámica en Objective-C. He estado estudiando el tipo "id", sé lo que hace y cómo usarlo, pero tengo curiosidad ... ¿Cómo se implementa dicha funcionalidad bajo el capó?

No puede determinar / resolver nada durante el tiempo de compilación, solo durante el tiempo de ejecución. Supongo que simplemente puede señalar el primer byte de algún objeto en la memoria, pero ¿cómo se almacena la firma de la clase? ¿Cómo sabe a qué apunta actualmente y cómo implementa varios captadores para la clase del objeto puntiagudo?

Respuestas a la pregunta(2)

Su respuesta a la pregunta