2009-09-09 6 views
12

En el método dealloc para una clase, ¿cómo imprimiría el ID (o algún otro identificador único) para la instancia que se desasigna?¿Imprimir identificación de instancia en NSLog?

- (void)dealloc { 
    NSLog(@"_deallocing: ??"); 
    [super dealloc]; 
} 

¿Esto es posible? Solo estoy tratando de obtener un poco más de retroalimentación en la consola como una ayuda para el aprendizaje.

muchas gracias -gary-

Respuesta

6

Prueba esto:

- (void)dealloc { 
    NSLog(@"_deallocing: %@", self); 
    [super dealloc]; 
} 

Esta es la salida un poco más de información sobre el objeto a la consola. Dependiendo de la clase, obtendrás una dirección de memoria y el nombre de la clase o algo más detallado. Si usted quiere dar algo más detallada en sus propias clases, reemplazar este método y el regreso lo desea:

-(NSString *)description { 
    return @"Something useful about this object"; 
} 
+0

Excelente, entonces ¿puedo suponer que "yo" simplemente está accediendo a la descripción predeterminada de la clase? – fuzzygoat

+0

Correcto - la función NSLog() reemplaza% @ con la descripción del objeto dado. El método de descripción de NSObject proporciona el valor predeterminado de . Consulte aquí para obtener más información sobre cosas útiles que hacer con NSLog: http://www.cocoadev.com/index.pl?NSLog – iKenndac

+0

¿Qué sucede si desea obtener la ID de una clase diferente? P.ej. Tengo una variable miembro 'NSMutableArray' y me gustaría imprimir su ID de instancia. –

52

Si desea específicamente la dirección de memoria del objeto (que supongo que podría considerarse una " identificador" si usted no tiene uno implementado en su clase), puede utilizar esto:

NSLog(@"deallocing %p", self); 

esto puede ser bastante útil si tiene más de una instancia de una clase particular y está tratando de determinar cual es siendo destrabajado cuando.

+0

Gracias dmkash, ese es un buen punto, muy apreciado. – fuzzygoat

+0

Documentación sobre los especificadores de formato de cadena: https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Strings/Articles/formatSpecifiers.html – LopSae