¿Hay alguna forma de ver los pares clave / valor de una variable NSDictionary a través del depurador de Xcode? Aquí está el alcance de la información cuando está completamente expandida en la ventana de variables:
Variable Value Summary
jsonDict 0x45c540 4 key/value pairs
NSObject {...}
isa 0xa06e0720
Esperaba que me mostrara cada elemento del diccionario (similar a una variable de matriz).
objective-c
cocoa
xcode
debugging
Dara Kong
fuente
fuente
Puede hacer clic con el botón derecho en cualquier variable de objeto (ObjC o Core Foundation) y seleccionar "Imprimir descripción en la consola" (también en Ejecutar-> Vista de variables). Esto imprime el resultado del
-debugDescription
método del objeto, que por defecto llama-description
. Desafortunadamente,NSDictionary
anula esto para producir un montón de datos internos que generalmente no le interesan, por lo que en este caso específico, la solución de craigb es mejor.Las claves y valores mostrados también se utilizan
-description
, por lo que si desea información útil sobre sus objetos en colecciones y en otros lugares, la anulación-description
es imprescindible. Generalmente lo implemento de esta manera, para que coincida con el formato de laNSObject
implementación predeterminada :fuente
Puede usar CFShow ()
NSMutableDictionary* dict = [[NSMutableDictionary alloc] init]; [dict setObject:@"foo" forKey:@"bar"]; [dict setObject:@"fiz" forKey:@"buz"]; CFShow(dict);
En salida verás
fuente
XCode 4.6 ha agregado la siguiente funcionalidad que puede serle útil
The elements of NSArray and NSDictionary objects can now be inspected in the Xcode debugger
Ahora puede inspeccionar estos tipos de objetos sin tener que imprimir todo el objeto en la consola. ¡Disfrutar!
Fuente: http://developer.apple.com/library/mac/#documentation/DeveloperTools/Conceptual/WhatsNewXcode/Articles/xcode_4_6.html
fuente
Haga clic en su dict, luego haga clic en el pequeño icono "i", debería hacer el trabajo :-)
fuente
Si desea imprimirlos en una acción de punto de interrupción en XCode moderno (sí, ¡estoy 10 años después de la publicación original!) Use la siguiente expresión de punto de interrupción en una acción de "Mensaje de registro":
@ myDictionary.description @
A continuación se muestra una captura de pantalla de mi acción de punto de interrupción donde el evento variable es un NSString y la variable contextData es el NSDictionary del que estoy registrando el contenido :
fuente
También puede utilizar NSLog .
También puede ir al área de depuración o xcode, luego averiguarlo y
All Variables, Registers, Globals and Statics
luego seleccionar su variable. Haz clic derecho sobre él. Luego seleccionePrint description of "...."
¡Espero eso ayude!
fuente