object_setClass a una clase más grande

Estoy cambiando la clase de algunos objetos usandoobject_setClass(id object, Class cls). Estoy cambiando la clase a unasubclase de la clase original. Luego establezco algunas propiedades que solo se definen en la subclase, y las cosas parecen funcionar bien.

Me sorprendió un poco que esto funcionara, porqueobject_setClass, por lo que yo entiendo, no reasigna el objeto, solo cambia elisa puntero. Si las instancias de subclase son considerablemente más grandes (es decir, tienen muchos más ivars) que las instancias de clase originales, no veo cómo el objeto puede funcionar como se esperaba.

¿Funciona esto solo porque hay mucha memoria intermedia entre los objetos en la memoria (debido a la alineación, etc.)?

¿Es robusto o podría bloquearse en algunas circunstancias?

Respuestas a la pregunta(2)

Su respuesta a la pregunta