enum und #define scheinen das gleiche zu können, für das Beispiel unten, das einen Stil definiert. Verstehen Sie, dass #define eine Makrosubstitution für den Compiler-Präprozessor ist. Gibt es irgendwelche Umstände, in denen man dem anderen vorgezogen wird?
%Vor%vs
%Vor%Eine Enum ist am besten, wenn Sie Sicherheit eingeben möchten. Sie werden auch als Symbole exportiert, sodass einige Debugger sie inline anzeigen können, während sie nicht definiert werden können.
Das Hauptproblem bei Enums ist natürlich, dass sie nur ganze Zahlen enthalten können. Für Strings, Floats etc ... können Sie besser mit einem const oder einem define umgehen.
Die kurze Antwort ist, dass es wahrscheinlich nicht viel ausmacht. Dieser Artikel bietet eine ziemlich gute lange Antwort:
Defines sind wahrscheinlich etwas schneller (zur Laufzeit) als Enums, aber der Vorteil ist wahrscheinlich nur eine Handvoll von Zyklen, so dass es vernachlässigbar ist, es sei denn, Sie tun etwas, was das wirklich erfordert. Ich würde mit enum gehen, da die Verwendung des Präprozessors schwieriger zu debuggen ist.
Tags und Links objective-c