Es gibt eine Reihe anderer Fragen auf, so dass darüber diskutieren, wie Konstanten deklariert sind und verhalten sich in Objective-C, sollten Sie unter der folgenden aussehen:
Constants in Objective-C
Objective-C “const” question
Significance of const keyword positioning in variable declarations
Um zu vergleichen und gegen C#, würde ich darauf hinweisen, dass const
in Obj-C ist im Wesentlichen das gleiche wie in der Sprache C (Obj-C ist ein supe rset von C in der Tat). In Obj-C werden Konstanten im globalen Gültigkeitsbereich deklariert und müssen mit einem Wert initialisiert werden, der zur Kompilierungszeit bekannt ist. Objective-C unterstützt keine Konstanten als Klassenmitglieder. In C# sind Konstanten immer Mitglieder einer Klasse (oder Struktur) und müssen ebenfalls mit einem Wert initialisiert werden, der zur Kompilierzeit bekannt ist. C# #define
lässt nicht zu, dass ein Wert einem definierten Symbol zugeordnet wird, sondern ermöglicht die Auswahl von bedingten Kompilierungspfaden (unter Verwendung von #if
und #else
), was ziemlich unterschiedlich ist.
Im Hinblick auf die Verwendung von #define
, um Konstanten zu deklarieren, versuche ich persönlich, dies zu vermeiden, wenn möglich. Werte, die #defined
sind, werden zur Kompilierungszeit einfach in den Code eingefügt - und könnten in verschiedenen Kontexten unterschiedlich interpretiert werden. Es ist auch möglich, Namenskollisionen einzuführen, die zu unerwarteten Neudefinitionen eines Werts führen können. Meine Vorschläge sind, const
zu verwenden, wenn Sie können und #define
nur wenn Sie müssen.
Verwenden Sie const, wann immer Sie können, #define nur wenn Sie müssen. –