Print-string-Darstellung eines enum, NSLog
Ich versuche NSLog einige Enumerationen, die ich habe. Zum Beispiel dieses Stück code gibt die Ganzzahl-Darstellung der enum, aber ich will es für die Ausgabe der tatsächlichen string name, in diesem Fall MO. Wie kann ich das tun?
#import <Foundation/Foundation.h>
int main(void)
{
typedef enum {
SUN,
MON,
TUES
} DAYS;
DAYS d = MON;
NSLog(@"%@", d);
return 0;
}
InformationsquelleAutor der Frage Huang | 2013-02-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die LLDB-debugger zeigen die string-Bezeichner. Anstatt also mit NSLog man könnte ein Haltepunkt mit einem debugger-Befehl handeln ("p-d" in deinem Fall) und legen Sie den Haltepunkt automatisch nach der Bewertung.
Können Sie konfigurieren Sie einen Haltepunkt, indem Sie mit der rechten Maustaste auf die Blaue Markierung.
InformationsquelleAutor der Antwort tom
Nicht leicht. Die string-Bezeichner für einen enum-Wert ist für die Entwickler, aber intern ist es einfach ein Wert mit einem bestimmten Typ (in deinem Beispiel
DAYS
).Könnten Sie schreiben, eine übersetzungs-Methode, um den Namen der enum-Wert, e ist.g
Es ist eine böse Art und Weise, es zu tun, da es nicht ganz widerstandsfähig gegen die enum-Werte ändern, aber seine Methode der Zuordnung einer Zeichenfolge mit einem enum-Wert.
InformationsquelleAutor der Antwort WDUK