sovrascrivo di -(NSString*)description
oggetto tuttavia Xcode mostra sempre error: summary string parsing error
nel campo Riassunto nella vista variabili.descrizione e personalizzati NSObject riassunti in Xcode
mio attuale implementazione è la seguente:
- (NSString*)description {
return [NSString stringWithFormat:@"<%@ %p> x=%f, y=%f", self.class, self, _x, _y];
}
Se digito po objectName
in console, LLDB mostra una multa di uscita come previsto, tuttavia Xcode e il comando p objectName
indicano sempre l'errore, quindi qual è la corretta descrizione di debug formato far funzionare il campo sommario? Vale la pena notare che l'output del comando "p" è lo stesso di un messaggio di riepilogo che si vede in Xcode per le istanze delle classi Foundation.
Aggiornamento:
Per quanto posso vedere da "Debug sessione WWDC 2012 in Xcode", riepiloghi personalizzati possono essere realizzati utilizzando solo script python personalizzato. I metodi -(NSString*)description
o -(NSString*)debugDescription
non sono comunque collegati ai messaggi di riepilogo. Ho pensato che fossero perché ho visualizzato un errore, ma sembra che sia un messaggio standard per le classi che non hanno i propri formattatori.
Tu dici "override" - è questa una sottoclasse o una categoria? E qual è la superclasse? –
E non ti dico che tu faccia "p objectName" in Xcode. Nel debugger Xcode ho sempre fatto 'po' per un oggetto. 'p' è per gli scalari. –
Una cosa da notare, Hot Licks, è che "p objectName" funzionerà per la maggior parte degli oggetti standard Foundation (i tuoi NSStrings, i tuoi NSArrays, ecc.) Perché lldb ha formattatori incorporati che sanno come formattare l'oggetto senza eseguire alcun codice nel tuo programma. Come osserva Andy nel suo aggiornamento, puoi anche scrivere i tuoi formattatori personalizzati per il tuo oggetto in Python - è piuttosto facile una volta capito. –