I überschreiben Objekt -(NSString*)description
aber Xcode immer error: summary string parsing error
in Übersichtsfeld in Variablen anzuzeigen.NSObject Beschreibung und benutzerdefinierte Zusammenfassungen in Xcode
Meine aktuelle Implementierung ist die folgende:
- (NSString*)description {
return [NSString stringWithFormat:@"<%@ %p> x=%f, y=%f", self.class, self, _x, _y];
}
Wenn ich po objectName
in Konsole eingeben, LLDB zeigt eine feine Ausgabe wie erwartet, aber Xcode und Befehl p objectName
immer Fehler anzeigen, so etwas ist das richtige Debug-Beschreibungsformat zu Zusammenfassende Feldarbeit machen? Es lohnt sich zu beachten, dass die Ausgabe des Befehls "p" mit einer zusammenfassenden Nachricht übereinstimmt, die Sie in Xcode für Instanzen von Foundation-Klassen sehen.
Update:
Soweit ich aus "WWDC 2012 Sitzung Debuggen in Xcode", benutzerdefinierten Zusammenfassungen können nur benutzerdefinierte Python-Skript implementiert werden sehen können. -(NSString*)description
oder -(NSString*)debugDescription
Methoden sind ohnehin nicht mit Übersichtsnachrichten verbunden. Ich dachte, sie sind, weil ich einen Fehler angezeigt bekommen habe, aber es scheint, dass es eine Standardnachricht für Klassen ist, die ihre eigenen Formatierer nicht haben.
Sie sagen "überschreiben" - ist das eine Unterklasse oder eine Kategorie? Und was ist die Superklasse? –
Und ich kann nicht sagen, dass Sie "p objectName" in Xcode tun. Im Xcode Debugger habe ich immer 'po' für ein Objekt gemacht. 'p' ist für Skalare. –
Eine Sache zu beachten, Hot Licks, ist, dass "p ObjektName" wird für die meisten der Standard-Foundation-Objekte (Ihre NSStrings, Ihre NSArrays, etc.) funktionieren, da lldb integrierte Formatierer, die das Objekt zu formatieren wissen, ohne zu laufen Code in Ihrem Programm. Wie Andy in seinem Update bemerkt, können Sie auch eigene benutzerdefinierte Formatierer für Ihr eigenes Objekt in Python schreiben - es ist ziemlich einfach, sobald Sie den Dreh raus haben. –