Umwandeln in Objective-C, enum-Konstanten string-Namen

Zuvor war dies nicht möglich (Sie haben, es zu schreiben, alle von hand /erstellen Sie ein statisches array /setzen Sie alle Werte in ein dictionary und Lesen Sie Sie zurück ... etc)

Aber ich habe bemerkt, dass die neueste Xcode ist lldb (4.6, vielleicht in früheren Versionen auch) ist die automatische Umwandlung von enum-Konstanten in strings.

Mein problem ist, dass wir eine Menge von Bibliotheken - einschließlich Apple-eigenen! - die Verwendung lästige öffentliche Enumerationen, die keine "Wert-string" - Methode angeboten. Also habe ich bis zum Ende (viele, viele Male) haben sich die "gut, da Herr Library Autor das nicht tun, jetzt muss ich mir das statische array für Sie...".

Hoffte ich darauf, Apple würde einen Weg aus diesem - ist es endlich da? Oder ist das ein trick, dass nur der debugger machen kann - Reine Laufzeit code hat keinen Zugriff darauf?

  • Ja, nur der debugger kann es nicht - der compiler erzeugt debug-Symbole und macht-strings aus Enumerationen automatisch. Eine alternative ist die #define TO_STR(m) #m Präprozessor-Makros, die möglicherweise oder möglicherweise nicht ausreichend für Ihre Nutzung Fall.
InformationsquelleAutor Adam | 2013-08-06
Schreibe einen Kommentar