Pregunta Descripción de NSObject y depuraciónDescripción


He visto mencionar la descripción y la depuración de errores con fines de depuración, pero aún he visto explicaciones precisas sobre cuándo y en qué condiciones pueden producir resultados diferentes.

La documentación de NSObject tampoco tiene nada sobre debugDescription. Pregunta: ¿Cuándo usar qué, y bajo qué condición, deberían / ​​serían diferentes?


32
2018-02-21 14:53


origen


Respuestas:


Nota técnica TN2124

Nota: print-object realmente llama al método debugDescription del objeto especificado. NSObject implementa este método llamando al método de descripción. Por lo tanto, de forma predeterminada, la descripción de depuración de un objeto es la misma que su descripción. Sin embargo, puede anular la depuraciónDescripción si desea desacoplarlos; muchos objetos de cacao hacen esto.

Si usted tiene debugDescription implementado, la impresión del objeto en GDB mostrará su resultado. Sabiendo que description se usa en la interfaz de usuario (sé que los enlaces lo hacen), es posible que desee utilizar esto para imprimir información adicional que el usuario no necesita ver.


38
2018-02-21 14:59



Una adición a lo que ya se ha dicho.

Si desea mejorar la salida mientras trabaja con po en lldb puede anular debugDescription método. Solo tenga en cuenta que el autoimpresión (el objeto mismo) llamará al método de descripción. Si por alguna razón <ClassName: objectAddress> no es bueno para usted también anula ese método.

Así que mi punto aquí fue resaltar que el auto de impresión llamará description método, mientras que po llamadas debugDescription que por defecto llama a la descripción. Dando esto, puedes diferenciar los resultados de esas llamadas.


1
2017-10-20 08:31