object_setClass zu größerer Klasse

Ich ändere die Klasse einiger Objekte mitobject_setClass(id object, Class cls). Ich ändere die Klasse in einUnterklass der ursprünglichen Klasse. Dann habe ich einige Eigenschaften festgelegt, die nur für die Unterklasse definiert sind, und die Dinge scheinen gut zu funktionieren.

Ich war ein bisschen überrascht, dass dies funktioniert, weilobject_setClassoweit ich weiß, ordnet @ das Objekt nicht neu zu, sondern ändert nur dasisa Zeiger. Wenn die Unterklasseninstanzen erheblich größer sind (dh viel mehr Ivars haben) als die ursprünglichen Klasseninstanzen, kann das Objekt nicht wie erwartet funktionieren.

Funktioniert dies nur, weil zwischen den Objekten im Speicher viel Pufferspeicher vorhanden ist (aufgrund von Ausrichtung usw.)?

Ist das robust oder könnte es unter Umständen abstürzen?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage