2009-10-18 16 views
6

Tengo una clase y quiero configurar lo que se imprime cuando llamo a NSLog con esa clase. Por ejemplo,NSLog e impresión de un objeto

NSLog (@ "% @", no estándarObject);

¿Cómo configuro el objeto para que imprima lo que quiero?

Respuesta

14

Anule el método -description. No requiere parámetros y devuelve un NSString que obtiene printf 'd out.

Hay otra variante llamada -debugDescription (devuelve NSString, sin parámetros) que se usa cuando se coloca el objeto desde gdb.

+2

Al crear subclases de clases distintas de NSObject, vale la pena considerar agregar una llamada a '[super description]' antes de generar resultados para los iVars de la subclase. – Abizern

+0

@Abizern: solo si está planeando usar la cadena que 'super' le brinda. ¿Hay alguna otra razón por la que quieras la descripción de Super? –

+0

@Dave. Exactamente, déjalo manejar su propia descripción, y tu clase puede manejar la salida de cualquier iVars añadido. Como ya he dicho; es algo a considerar – Abizern

Cuestiones relacionadas