¿Cómo puedo ver los valores dentro de un object en el depurador Xcode?

Sé que puede parecer una pregunta estúpida, ya que es una característica trivial en la mayoría de las IDE modernas, pero me estoy sumergiendo en el desarrollo de iOS y me estoy familiarizando con la plataforma y el SDK y no puedo entenderlo. Tengo un montón de experiencia con MS Visual Studio y veo que Xcode funciona mucho igual, aunque todavía carece de una cierta funcionalidad en comparación, pero sigue siendo un IDE muy bueno. Cuando se trata de debugging, Xcode funciona muy similar a Visual Studio, ya que puede pasar el mouse sobre una variable y mostrará su valor actual. Sin embargo, cuando se trata de variables de object, casi siempre da la dirección junto con la flecha de expansión, que se expande a "NSObject", que se expande a "isa", que se expande a todos los attributes que no me dicen nada. Estoy acostumbrado al IDE, como Visual Studio, siendo lo suficientemente inteligente como para hacer una cierta introspección y mostrar para mí el object real y todas sus properties y valores inmediatos. Estoy asumiendo que Xcode es lo suficientemente inteligente como para hacer esto y simplemente no lo uso correctamente.

Si configuro un punto de interrupción en una línea de código que implica una instancia de object (digamos instancia de NSDateComponents), ¿cómo puedo ver los valores de sus properties (es decir, año, semana, día, hora, etc.)?

¡Gracias de antemano por tu ayuda!

Edit: Aquí hay una captura de pantalla de la información que obtengo con cada object que inspecciono … alt text http://joecrotchett.comhttp://sofes.miximages.commisc/example.jpg

Es frustrante. El depurador debe conocer la estructura de cada object y aparentemente no lo hace. Solía ​​ser mucho peor, sin embargo. Al igual que con NSArray, son una variedad de objects. El depurador no sabe qué tipo de objects específicamente, y eso se debe al lenguaje Objective-C, no al depurador.

A medida que te sumerges en el desarrollo de iOS, creo que encontrarás que Apple está a unos 15 años detrás de sus competidores cuando se trata de desarrollo. Eso no es broma. ¡Pero se están poniendo al día y, créanme, solía ser mucho peor!

Para mis objects de datos, tiendo a sobrescribir el método de description y generar una cadena con el resumen del object. Algo como esto:

 Printing description of myContact: {name=Homer, lastname=Simpson, ...} 

Esto significa que puede inspeccionar rápidamente un object en el depurador o cuando lo NSLog en la console. Si esa descripción contiene todos los datos relevantes, también podría sobrescribir isEqual: para que use la descripción para comparar dos objects.

Pase el cursor sobre una variable y aparecerá una línea al respecto. Mueva el mouse muy ligeramente y pase el cursor sobre la flecha del triángulo que está en el lado izquierdo de la window emergente, esa flecha girará hacia abajo y otra window emergente se abrirá mostrando todas las properties nombradas de ese object.

También puede hacer que imprima su valor de "descripción". Mueva su puntero ligeramente hacia la derecha hasta que se acaben las dos pequeñas flechas "arriba / abajo". Luego a la izquierda (bueno, "principal") haga clic. Aparecerá una window emergente y una opción será "Descripción de la printing". Si hace clic en eso, pondrá la salida de su método de -description en la console.

También puede cambiar la forma en que Xcode muestra un valor en el panel de variables locales yendo a "Editar formatting de resumen" en el menu del button derecho.

Por ejemplo, para que llame al método de description , lo configura como

 {(NSString*)[$VAR description]}:s 

Pocos detalles más aquí: comprensión del depurador de Xcode var display

Bueno, han pasado un par de años más, y xcode sigue mostrando isa = (Clase) en la mayoría de los objects en lugar de poder descubrir cuál es el object.

E incluso que han pasado un par de años, Apple todavía está retrasado, porque la competencia está ejecutando loops alnetworkingedor de ellos (y ahora están 16 años atrás de los actuales estados de los competidores).