2009-10-18 19 views
6

Ich habe eine Klasse und ich möchte einrichten, was gedruckt wird, wenn ich NSLog mit dieser Klasse aufrufen. Zum BeispielNSLog und Drucken eines Objekts

NSLog (@ "% @", Nichtstandardobjekt);

Wie richte ich das Objekt so ein, dass es ausdruckt, was ich möchte?

Antwort

14

Überschreiben Sie die -description Methode. Es nimmt keine Parameter und gibt einen NSString zurück, der printf out ist.

Es gibt eine andere Variante namens -debugDescription (gibt NSString zurück, keine Parameter), die verwendet wird, wenn das Objekt von gdb angezeigt wird.

+2

Bei der Unterklassenbildung von anderen Klassen als NSObject ist es sinnvoll, einen Aufruf von '[super description]' hinzuzufügen, bevor Ergebnisse für die iVars der Unterklasse ausgegeben werden. – Abizern

+0

@Abizer - nur wenn Sie die Zeichenfolge verwenden, die Ihnen "super" gibt. Gibt es einen anderen Grund, warum du Super's Beschreibung willst? –

+0

@Dave. Genau, lassen Sie super seine eigene Beschreibung behandeln, und Ihre Klasse kann die Ausgabe für alle hinzugefügten iVars verarbeiten. Wie ich sagte; es ist etwas zu beachten. – Abizern

Verwandte Themen