¿Hay algún método que pueda anular en mis clases personalizadas para que cuando
NSLog(@"%@", myObject)
se llama, imprimirá los campos (o lo que considere importante) de mi objeto? Supongo que estoy buscando el equivalente de Objective-C de Java toString().
objective-c
tostring
nslog
George Armhold
fuente
fuente

descriptionpropiedad está reservada ... ¡y proporcionará información útil de depuración! En ese caso, deberás crear tu propio nombre de método único.debugDescriptionTambién está reservado? Aunque creo queDebugDescriptionse supone que debe ser utilizado por un depurador como LLDB.Agregue esto a
@implementationsu clase de Foto:fuente
Puede anular el método de descripción de NSObject:
Sobre el tema del registro, recomiendo esta publicación de blog para un mejor registro en Objective-C.
fuente
Hay dos funciones que puede usar.
Esto se mostrará cuando coloque su objeto como, IE un parámetro para
NSLog. La otra función de descripción es:Esto se llamará cuando lo haga
po anInstanceOfYourClassen la ventana de comando de depuración. Si su clase no tiene unadebugDescriptionfunción, solodescriptionse le llamará.Tenga en cuenta que la clase base se
NSObjecthadescriptionimplementado, pero es bastante básica : solo muestra la dirección del objeto. Es por eso que le recomiendo que implementedescriptionen cualquier clase de la que desee obtener información, especialmente si usa eldescriptionmétodo en su código. Si lo usadescriptionen su código, le sugiero que lo implementedebugDescriptiontambién, y que seadebugDescriptionmás detallado.fuente
Esto generará las voces disponibles:
fuente