¿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
description
propiedad está reservada ... ¡y proporcionará información útil de depuración! En ese caso, deberás crear tu propio nombre de método único.debugDescription
También está reservado? Aunque creo queDebugDescription
se supone que debe ser utilizado por un depurador como LLDB.Agregue esto a
@implementation
su 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 anInstanceOfYourClass
en la ventana de comando de depuración. Si su clase no tiene unadebugDescription
función, solodescription
se le llamará.Tenga en cuenta que la clase base se
NSObject
hadescription
implementado, pero es bastante básica : solo muestra la dirección del objeto. Es por eso que le recomiendo que implementedescription
en cualquier clase de la que desee obtener información, especialmente si usa eldescription
método en su código. Si lo usadescription
en su código, le sugiero que lo implementedebugDescription
también, y que seadebugDescription
más detallado.fuente
Esto generará las voces disponibles:
fuente