2009-04-21 7 views
6

Para propósitos de depuración, me gustaría mostrar toda la información de clase como pueda, y posiblemente información de tiempo de ejecución (que no hilo de la clase/función ejecuta en, etc) en la consola.¿Cómo obtener información sobre la clase y el tiempo de ejecución?

¿Hay una manera fácil de hacer esto con una función, variable o incluso marco (externo)?

P.S: estoy usando Cocoa Touch.

+0

gran pregunta, gracias! –

Respuesta

8

en una clase, si sobrecarga el método -(NSString *)description, puede acceder fácilmente a información clase con NSLog(@"%@", some_object);

aquí hay un ejemplo ficticio:

-(NSString *)description 
{ 
    return [NSString stringWithFormat:@"%@, %@, %d", 
             [super description], 
             class.object_ivar, 
             class.int_ivar]; 
} 

Usted puede utilizar macros C estándar para hacer las cosas como el nombre , archivo, número de línea, etc. ... utilice las clases NSThread para obtener información sobre el tema al que se está llamando el método.

he publicado éste a twitter. http://twitter.com/kailoa/status/1349928820 Siéntase libre de seguirme si usted está interesado en más cositas así. Intento ponerlos regularmente.

#define METHOD_LOG (NSLog(@"%@ %s\n%@", NSStringFromSelector(_cmd), __FILE__, self)) 
+0

gracias, esto funciona para mí. – Jake

+4

'__PRETTY_FUNCTION__' le dará la clase y cualquier categoría, así como el nombre del selector. También funciona con C++ y Obj-C++. Si usted está planeando sobre el uso del depurador, impresión a objetos de forma predeterminada invoca '-debugDescription', por lo que puede anular que para proporcionar una descripción más apropiada que la depuración devuelto por' -description'. –

+0

Impresionante, gracias –

Cuestiones relacionadas