Mi código en un UITableViewController:
delegate.myData = [myData objectAtIndex:indexPath.row];
¿Cómo puedo ver los valores de delegate.myData
o indexPath.row
en el depurador? delegate.myData
debe ser una matriz y indexPath.row
un int
. Sólo puedo ver las direcciones de memoria de los objetos delegate
y indexPath
¿pero dónde están myData
y row
?
po obj
en swift espo print(obj)
.Estoy de acuerdo con otros carteles en que Xcode, como entorno de desarrollo, debería incluir una forma fácil de depurar variables. Bueno, buenas noticias, ¡HAY una!
Después de buscar y no encontrar una respuesta / tutorial simple sobre cómo depurar variables en Xcode, fui a explorar con Xcode y encontré este descubrimiento (al menos para mí) muy útil.
Cómo depurar fácilmente sus variables en Xcode 4.6.3
En la pantalla principal de Xcode, asegúrese de ver el área de depuración inferior haciendo clic en el botón de la esquina superior derecha que se muestra en la captura de pantalla.
Ahora establezca un Punto de interrupción: la línea en su código donde desea que su programa se detenga, haciendo clic en el borde de su Área de código.
Ahora, en el Área de depuración, busque estos botones y haga clic en el del medio. Notará que su área ahora está dividida en dos.
Ahora ejecute su aplicación.
Cuando se alcanza el primer punto de interrupción durante la ejecución de su programa, verá en el lado izquierdo todas las variables disponibles en ese punto de interrupción.
Puede expandir las flechas hacia la izquierda en la variable para obtener más detalles. E incluso use el campo de búsqueda para aislar la variable que desea y ver cómo cambia en tiempo real a medida que "ingresa" al alcance del Breakpoint.
En el lado derecho de su Área de depuración, puede enviar a imprimir las variables que desee usando el botón derecho del mouse, haga clic sobre la variable deseada.
Como puede ver, ese menú contextual está lleno de opciones de depuración muy interesantes. Como Watch que ya se ha sugerido con comandos escritos o incluso Edit Value ... ¡ que cambia el valor de tiempo de ejecución de su variable!
fuente
Tambien tu puedes:
En mi humilde opinión, un poco escondido y engorroso ...
fuente
Tu confusión se debe al hecho de que propiedades declaradas no son (necesariamente nombradas igual que) (instancia) variables.
La expresion
es equivalente a
y la tarea
es equivalente a
asumiendo nombres estándar para propiedades sintetizadas.
Además,
delegate
probablemente se declara como de tipoid<SomeProtocol>
, es decir, el compilador no ha podido proporcionar información de tipo realdelegate
en ese momento, y el depurador se basa en la información proporcionada en tiempo de compilación. Dado queid
es un tipo genérico, no hay información en tiempo de compilación sobre las variables de instancia endelegate
.Esas son las razones por las que no ve
myData
orow
como variables.Si desea inspeccionar el resultado del envío
-row
o-myData
, puede usar comandosp
opo
:o use la ventana de expresiones (por ejemplo, si sabe que su tipo
delegate
es realMyClass *
, puede agregar una expresión(MyClass *)delegate
, o hacer clic con el botón derechodelegate
, elegirView Value as…
y escribir el tipo real dedelegate
(por ejemploMyClass *
).Dicho esto, estoy de acuerdo en que el depurador podría ser más útil:
Podría haber una opción para decirle a la ventana del depurador que use información de tipo de tiempo de ejecución en lugar de información de tiempo de compilación. Ralentizaría el depurador, por supuesto, pero proporcionaría información útil;
Las propiedades declaradas podrían mostrarse en un grupo llamado propiedades y permitir la inspección (opcional) directamente en la ventana del depurador. Esto también ralentizaría el depurador debido a la necesidad de enviar un mensaje / ejecutar un método para obtener información, pero también proporcionaría información útil.
fuente
Puede imprimir valores en la ventana de la consola en tiempo de ejecución. A continuación se muestran los pasos:
fuente
Esto se complica un poco. Estos objetos son clases o estructuras personalizadas, y mirar dentro de ellos no es tan fácil en Xcode como en otros entornos de desarrollo.
Si yo fuera usted, NSLog los valores que desea ver, con alguna descripción.
es decir:
fuente
Prueba Ejecutar-> Mostrar-> Expresiones
Ingrese el nombre de la matriz o lo que esté buscando.
fuente