Objective C-Klassen unterstützen keine Konstanten als Member. Sie können eine Konstante nicht wie gewünscht erstellen.
Die einfachste Möglichkeit, eine Konstante zu deklarieren, die einer Klasse zugeordnet ist, besteht darin, eine Klassenmethode zu definieren, die sie zurückgibt. Sie können auch extern verwenden, um direkt auf Konstanten zuzugreifen. Beide werden unten gezeigt:
%Vor%Ein Vorteil der Klassenmethoden-Version ist, dass sie einfach erweitert werden kann, um konstante Objekte bereitzustellen. Sie können externe Objekte verwenden, müssen Sie sie in einer Initialisierungsmethode initialisieren (es sei denn, sie sind Zeichenfolgen). So sehen Sie oft das folgende Muster:
%Vor%Eine einfache Methode für Werttyp-Konstanten wie Ganzzahlen ist die Verwendung des enum-Hacks von Ungläubigen.
%Vor% Ein Vorteil gegenüber der Verwendung von extern
ist, dass alles zur Kompilierzeit aufgelöst wird, so dass kein Speicher für die Variablen benötigt wird.
Eine andere Methode ist die Verwendung von static const
, was den Enum-Hack in C / C ++ ersetzen sollte.
Ein kurzer Scan durch Apples Kopfzeilen zeigt, dass die Enum-Hack-Methode in Objective-C die bevorzugte Methode zu sein scheint und ich finde sie sauberer und benutze sie selbst.
Wenn Sie Gruppen von Optionen erstellen, sollten Sie auch NS_ENUM
verwenden, um typensichere Konstanten zu erstellen.
Weitere Informationen zu NS_ENUM
und dessen Cousin NS_OPTIONS
finden Sie unter NSHipster .
Tags und Links objective-c header constants