Logo

Objective-C, Xcode und Cocoa Tutorial


 

 

EIN TUTORIAL ZU OBJECTIVE-C, XCODE UND COCOA

 

Kapitel 11 - Fortsetzung

 

Ein paar fortgeschrittene Typen der Definitionen:

Eine Definition für einen Namen kann aber mehr als einen konstanten Wert beinhalten. So kann man statt der konstante PI auch ein doppeltes PI definieren:

#define ZWEI_PI 2.0 * 3.1415

So können Sie ZWEI_PI in Ihrem Programm verwenden. Z.B.:

return ZWEI_PI * radius;

Jedes Mal wenn der Präprozessor auf ZWEI_PI stösst, tauscht er diesen Text gegen die Rechnung 2.0 * 3.1415 aus. Deshalb darf nach 3.1415 auch kein Semikolon gesetzt werden, ansonsten würde folgenden Rechenversuch starten:

return 2.0 * 3.1515; * r;

was zwangsläufig in einer Fehlermeldung enden würde. Sie könne auch Operatoren Namen geben. Z.B. mit:

#define OR | |

Jetzt können Sie schreiben

if (x = = 0 OR y = = 1)
....
entspricht der gleichen Programmzeile wie

if ( x = = 0 || y = = 1)
...

Für Sie wird dadurch der Programmcode leichter leisbar, aber Achtung: da Sie die Definitionen ja frei wählen können, wird der Programmcode für andere schwerer lesbar, da er sich ja erst an "Ihre Syntax" gewöhnen muss.

Üblicherweise müssen alle Definitionen in einer Zeile geschrieben werden. Will man eine zweite Zeile verwenden, dann kann man diese Zeilen mit einem Backslash \ trennen.

 



Conditional Compilation
Der Objective-C Compiler ermöglicht ein Feature Namens conditional Compilation. Dieses wird oft benutzt um ein Programm zu kreiren, dass compiled to run auf verschiedenen Computersystemen. Es ist ebenso oft genutzt um verschiedene Statements in einem Programm ein- oder auszuschalten.

Die #ifdef, #endif, #else, und #ifdef Statements
Unglücklicherweise muss sich ein Programm auf System abhängige Variablen verlassen, wie z.B. der Name einer Datei oder dergleichen. In einem großen Programm kann die Zahl dieser Variablen erhebliche Größe zunehmen, und wenn diese Variablen auf einen Computer übertragen werden müssen diese geändert werden, sonst funktionierts nicht. Dieses Problem kann man reduzieren, indem man conditonelle Operatoren verwendet. Als ein einfaches Beispiel:

#ifdef UNIX
# define DATADIR "/uxn1/data"
#else
# define DATADIR "\usr\data"
#endif


weiter ---- Objective-C Index ---- Startseite----zurück


Das Inhaltsverzeichnis

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

 

 

 

Links