Hi,
ich habe ein Changesets das eine (schon vorhandene) Klasse A (um eine KlassenVariable erweitert) und eine neue, abgeleitete Klasse B einführt. Z.B. so:
"------------------------------------------------------------" Object subclass: #A instanceVariableNames: '' classVariableNames: 'KlassenVariable' poolDictionaries: '' category: 'Beispiel'
A subclass: #B instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'Beispiel' "------------------------------------------------------------"
Dazu noch folgende Klassen-Methoden:
"------------------------------------------------------------" A class>>initialize KlassenVariable := Set new.
A class>>add: object KlassenVariable add: object.
B class>>initialize super add: 'Beispiel' "------------------------------------------------------------"
Wie man sieht, muss also im Changeset 'B class>>initialize' _nach_ 'A class>>initialize' ausgeführt werden, damit 'Beispiel' in KlassenVariable enthalten ist.
Ein FileOut des Changesets macht es jedoch genau falsch herum. Auch wenn ich das dann manuell mit einem Editor korrigiere, in ein neues Image einlese (FileIn) und wieder ausgebe (FileOut), wird die Reihenfolge wieder falsch herum gemacht.
Erklärungen/Lösungen? Was bestimmt die Reihenfolge der Elemente eines Changesets?
mfg Chris Burkert
Chris Burkert wrote:
Erklärungen/Lösungen? Was bestimmt die Reihenfolge der Elemente eines Changesets?
Das kommt davon, wenn man Variablen direkt verwendet ;-)
Eine Loesung ist lazy initialization:
A>>klassenVariable ^KlassenVariable ifNil: [KlassenVariable := Set new].
B>>initialize self klassenVariable add: 'dingens'
Michael
squeak-ev@lists.squeakfoundation.org