Mich wundert, das das in diesem Fall bei Feldern der Klasse nicht funktionieren soll, sofern die Felder public definiert sind.
Zugriffe auf Felder und virtuelle/dynamische Methoden werden über einen Offset zu Self ausgeführt.
Ist nun Self = nil oder ein ungültiger Wert, dann geht das natürlich schief.