
Kapitel 9 - Fortsetzung
Der Objective-C compiler ermöglicht Ihnen eine Auswahl an Werten zu einer Variable hinzufügen. Initialisiert wird eine derartige Aufzählung durch das Schlüsselwort enum:
enum flag {false, true};
definiert einen Datentyp Namens flag. Diesem Datentyp kann dann die Werte true oder false innerhalb eines Programms zugefügt werden. Das Problem ist allerdings, dass der Compiler keine Warnung ausspuckt, wenn diese Definition verletzt wird. Deklariert man dann diese Variable muss enum erneut verwendet werden, gefolgt von der definierten Variable und den Variablennamen. Also etwa so:
enum flag endOfData, matchFound;
Die einzigen Werte, die den Variablen endOfData und matchFound zugewiesen werden kann sind dann entweder true oder false. Sie können also zuweisen:
endOfData = true;
oder
if (matchFound = = false)
...
sind zulässig. Achtung: würden Sie also irgendwo im Programm z.B.:
endOfData = 14;
oder
matchFound = x;
definieren würden Sie vom Compiler keinen Hinweis bekommen, dass Sie nur true oder false den Variablen endOFData oder matchFound zuweisen dürfen.
Will man einen speziellen Wert mit einer enumerierten Variable in Verbindung bringen, kann der Wert zu Beginn zugewiesen werden. Definieren Sie z.B.:
enum direction { up, down, left = 10, right};
bedeutet, dass ein enumerierter Datentyp Namens direction definiert wurde mit den Werten up, down, left und right. Der Compiler weist up automatisch den Wert 0 zu, weil es der erste in der Reihe ist, down weist er den Wert 1 zu, bei left wird ihm mitgeteilt er solle den Wert auf 10 setzen (hätte man diesen Wert nicht definiert, wäre er vom compiler auf 3 gesetzt worden), dem Wert right weist er jetzt aber nicht den Wert 4 zu, sondern den Wert 11. Eine doppelte Wertzuweisung bei enumerierten Typen ist jedoch möglich. Z.B.:
enum boolean {no = 0, false = 0, yes = 0, true = 0};
ist somit möglich. Ein anderes Beispiel ist:
enum monat { januar = 1, februar, march,...december};
Hätte man januar nicht auf 1 gesetzt, wäre vom Compiler der Wert 0 zugewiesen worden. februar wird demanch vom Compiler automatisch der Wert 2 zugewiesen. Mit
enum monat diesesMonat
...
diesesMonat = februar;
wird der Wert 2 februar zugewiesen.
weiter ---- Objective-C Index ---- Startseite----zurück
EINSTIEG
KAPITEL 1: SCHRITT FÜR SCHRITT ZUM ERSTEN PROGRAMM
KAPITEL 2: OBJEKTE, KLASSEN, INSTANZEN UND METHODEN
KAPITEL 3: DIE VERSCHIEDENEN DATENTYPEN
KAPITEL 4: DIE PROGRAMMSCHLEIFEN
KAPITEL 5: ENTSCHEIDE DICH, ENTWEDER ODER....
KAPITEL 6: UND NOCHMALS KLASSEN
KAPITEL 7: VERERBUNG
KAPITEL 8: POLYMORPHISMUS, DYNASCHISCHE TYPISIERUNG UND DYNAMISCHES BINDEN
KAPITEL 9: NOCH MEHR DATENTYPEN UND VARIABLEN
KAPITEL 10: CATEGORIES, POSING AND PROTOCOL
KAPITEL 11: DER PRÄPROZESSOR