objective framework apple objective-c nsobject

objective c - framework - Descripción de NSObject y depuraciónDescripción



swift ios documentation (2)

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

Si desea mejorar la salida mientras trabaja con po en lldb, puede anular el método debugDescription . 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 sistema de impresión llamará al método de description , mientras que po llama a debugDescription que por defecto llama a descripción. Dando esto, puedes diferenciar los resultados de esas llamadas.

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?


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 tiene debugDescription implementado, la impresión del objeto en GDB mostrará su resultado. Sabiendo que la description se usa en la interfaz de usuario (sé que los enlaces hacen eso), es posible que desee utilizar esto para imprimir información adicional que el usuario no necesita ver.