0:27
Cuando hablamos de las decisiones en las puntos de interrupción,
estamos definiendo una condición, a partir de la cual,
si es verdadera, el punto de interrupción se va a llevar a de a cabo,
eso quiere decir, sí se va a detener lo que es la ejecución del programa
y si la condición es falsa, entonces, no es verdadero, no se va a llevar a cabo,
entonces la ejecución pasaría y no se detendría en ese punto de interrupción.
Un ejemplo de esto es, eh yo puedo determinar que un punto de interrupción
no sea, no se lleve a cabo, eso quiere decir que no sea ejecutado, sino hasta que
se pasen dos veces, quiere decir, la primera vez no no me interesa detenerme,
no me interesa sino hasta la segunda vez, entonces yo pongo una condición que diga,
después de n veces que se pase por este punto,
es cuando verdaderamente me voy a detener.
Entonces yo puedo decir, después de dos veces,
entonces sí me detengo a examinar el código.
1:25
Otra forma de definir las condiciones sería
a través de los valores de las variables.
Yo puedo decir, me voy a detener en este punto de interrupción,
si y solo si, el valor de esta variable
o el conjunto de valores de estas variables es igual a esto o mayor a esto.
Y de esta forma yo estaría asegurándome, por ejemplo, solamente probando para un
cierto conjunto de valores problemáticos, eh la ejecución del punto de interrupción,
que ahí me voy a detener, y voy a examinar mi código.
Entonces, de esta manera, yo puedo combinar y hacer condiciones
para detenerme exactamente dependiendo de las necesidades de depuración.
2:36
Otra cosa que yo podría hacer es definir un script, un conjunto de de instrucciones
que yo quiero que se ejecuten cuando se pase por un punto de interrupción,
cuando un punto de interrupción, cuando se se detenga allí la ejecución del código,
yo puedo hacer que un conjunto de instrucciones se lleve a cabo,
eh por ejemplo, puedo mandar un conjunto de comandos
a lo que es la consola de de depuración o bien un conjunto de comandos
a lo que es la bitácora de eh de depuración de la app.
De esta manera, entonces, yo puedo combinar mis eh condiciones y mis acciones
para hacer una depuración pues más rica, más eh fácil, más rápida, más efectiva
y poder encontrar fácilmente los problemas que tengo en una app y solucionarlos.
Bueno, pero pasemos ahora a un ejercicio en Xcode.
Ahora vamos a aplicar la personalización de nuestros puntos de interrupción
en un ejercicio.
Necesitamos te tener un código, en este caso yo voy a utilizar un código que ya
teníamos eh previamente con lo que es la calculadora de índice de masa corporal,
donde yo definí un conjunto de puntos de interrupción.
3:47
Me voy a alguno de ellos y voy a a hacer, con el botón derecho,
la edición del punto de interrupción.
En esta edición del punto de interrupción yo podría aplicar condiciones,
por ejemplo, yo podría decir ignorar la primera vez que que se ejecute
este punto de interrupción y hasta la segunda, es la que se tomaría en cuenta.
Esta es una forma de poner una condicional.
La otra forma de poner una condicional es, por ejemplo decir, solamente si el valor
de la variable imc es mayor a 25, entonces sí vamos a detener
eh la ejecución eh de este punto, sino, pues se va a continuar.
Entonces vamos a probar esto, entonces, esta línea de de código
eh eh solamente se va a detener en este punto de interrupción, si y sólo si,
el imc es mayor a 25.
Lo vamos a probar, vamos a correrlo y vamos
a poner valores primero que no sean eh mayores a 25.
Vamos a poner un valor menor a 25 primero.
Entonces voy a poner un valor de 60 kilos para una estatura de 1.7,
lo cual me daría un índice de masa corporal menor a 25.
Entonces aquí me empiezo a detener,
en mi primer punto de interrupción en la línea 41, empiezo a a moverme,
ahí calculo eh en la línea 43 el índice de masa corporal y
no voy a pasar por la línea 44, porque no es mayor a 25, entonces ahí,
si se fijan, inmediatamente salté de la línea 43 a la línea 45,
porque mi valor de índice de masa corporal es de 20, lo que hace,
pues que no, no se ejecute la línea 44.
Eh, puedo continuar con con la ejecución, mejor lo voy a hacer de esta manera.
Aquí recuerden que con el play, puedo yo eh continuar, voy a continuar porque
ahí hay o este la invocación otra vez, ahí esta parte,
porque se volvió a hacer el cálculo para esta parte, y aquí voy a modificar,
mi, por ejemplo, mi peso para que sea, digamos de 80 kilos,
con 80 kilos y 1.7 de estatura, sí me va a dar un índice de masa corporal mayor
a 25 y entonces ahí sí se va a detener en la línea 44, que yo había determinado.
Pues aquí empiezo la línea 42, entonces calculo la estatura,
la línea 43 calculo el índice de masa corporal y vean como ahora sí
estoy detenido en la línea 44, ¿Por qué?
Pues porque mi condición sí se llevó a cabo.
Entonces, esta es la forma de aplicar condicionales a nuestros
eh puntos de interrupción.
Ahora, ya no voy a utilizar las condicionales,
sino voy a utilizar las acciones.
Eh una acción que yo puedo hacer, es por ejemplo,
6:45
mandar un comando a a lo que es el, la consola del debugger.
Entonces, por ejemplo, el comando más sencillo es el de print out,
o sea, imprimir, por ejemplo, el valor de lo que tengo en la variable imc.
Entonces aquí en esta pantalla, de esta parte,
voy a estar imprimiendo el valor de esta variable.
Esto me evita, por ejemplo, tener como esto,
que yo tengo en código precisamente, aquí en código yo tengo un print resultado imc,
en donde precisamente estoy imprimiendo en, en la consola,
pues un valor, para saber si voy bien, voy mal, entonces,
esto lo voy a hacer precisamente a través de una acción de mi punto de interrupción.
Entonces eh lo voy a ejecutar, lo voy a ejecutar de nuevo.
7:59
Noten que es diferente, porque ahorita en cuanto le de el siguiente paso,
va a aparecer el mismo resultado, porque es la misma variable imc,
pero con la etiqueta eh en prefijo que dice, resultado dos puntos,
entonces si se fijan ahora lo voy a hacer y efectivamente,
aquí tengo resultado dos puntos, es la misma variable, y noten la diferencia,
esto fue a través de una acción de mi punto de interrupción
y esto fue a través de la línea de ejecución de el código.
Así mismo, yo podría, por ejemplo, eh sobre esto mismo eh eh editar mi,
mi este, mis acciones y agregar eh un sonido,
entonces yo puedo hacer de que se ejecute, eh este sonido el de, el de vidrio.
8:50
Entonces al momento de que yo voy a hacer y eh la depuración de este,
de esta aplicación y otra vez introduzco mis valores de ejemplo, este,
y lo que va a suceder, es que cuando vean eh que se imprime aquí el valor, se
va a escuchar el sonido, entonces aquí va vamos a ir paso a paso, aquí tengo, aquí
va a hacer el cálculo y es en el siguiente paso en donde voy a tener la impresión,
no, noten lo que va a pasar aquí en esta parte de la pantalla y además el sonido.
¡Y ahí lo tenemos!
¡Muy bien!
Pues esta es la forma de cómo podemos nosotros aplicar condicionales y
un conjunto de acciones a los puntos de interrupción que nos van a permitir
personalizarlos, hacer el despliegue de valores más rápido, la verificación
de posibles errores y podemos hacer una depuración, pues más rica y más efectiva.