Fallo al usar bloques (animación) en instrucciones de cambio
Este código funciona (if-statement con animaciones):
<code>// works if (_camOrientation == UIDeviceOrientationPortrait) { [UIView animateWithDuration:0.5f animations:^(void){ [_distanceView setTransform:CGAffineTransformMakeRotation(degreesToRadian(0.0))]; }]; } else if (_camOrientation == UIDeviceOrientationLandscapeLeft) { [UIView animateWithDuration:0.5f animations:^(void){ [_distanceView setTransform:CGAffineTransformMakeRotation(degreesToRadian(90.0))]; }]; } </code>
Esto también funciona (declaración de cambio sin animaciones):
<code>// works switch (_camOrientation) { case UIDeviceOrientationPortrait: [_distanceView setTransform:CGAffineTransformMakeRotation(degreesToRadian(0.0))]; break; case UIDeviceOrientationLandscapeLeft: [_distanceView setTransform:CGAffineTransformMakeRotation(degreesToRadian(90.0))]; break; default: break; } </code>
Éste se bloquea (interruptor-declaración con animación):
<code>// crashes switch (_camOrientation) { case UIDeviceOrientationPortrait: [UIView animateWithDuration:0.5f animations:^(void){ [_distanceView setTransform:CGAffineTransformMakeRotation(degreesToRadian(0.0))]; }]; break; case UIDeviceOrientationLandscapeLeft: [UIView animateWithDuration:0.5f animations:^(void){ [_distanceView setTransform:CGAffineTransformMakeRotation(degreesToRadian(90.0))]; }]; break; default: break; } </code>
¿Por qué no puedo usar bloques de animación en una instrucción de cambio?