objective c - EXC_BAD_ACCESS en bloque de instrucción en Cambiar impacto en imageViewPoistion
objective-c xcode (0)
Tengo una situación extraña. Recibo una excepción en el siguiente código en los corchetes cercanos de la declaración de cambio
imageViewPosition = self.imageView6.center;
switch(direction) {
case(1):
if (starty-imageViewPosition.y>50) {
imageViewPosition.y = starty+100;
} else {
imageViewPosition.y = starty;
}
break;
case(2):
...
} <----- Here i get the exception
starty es un miembro de doble clase. Y imageViewPosition es un CGPoint. Cuando lo ejecuto así, recibo una excepción EXC_BAS_ACCESS.
En los siguientes casos no recibo excepción y todo funciona como se esperaba. No entiendo por qué ese es el caso.
a) Cuando agrego paréntesis a la declaración if, todo funciona bien:
if ((starty-imageViewPosition.y)>50) {
b) Cuando coloco el enunciado de caso entre llaves, todo funciona bien.
imageViewPosition = self.imageView6.center;
switch(direction) {
case(1): {
if (starty-imageViewPosition.y>50) {
imageViewPosition.y = starty+100;
} else {
imageViewPosition.y = starty;
}
}
break;
¿Por qué? Espero que las respuestas a las opciones a) yb) sean diferentes. Ya tuve esto antes en otra situación con un interruptor, así que quiero entender lo que estoy haciendo mal. Gracias.