2011-08-25 11 views
25

Si cierro la aplicación de mi iPad mientras estoy cargando datos de los servicios, la aplicación se cierra pero luego se abre de nuevo sin que yo haga nada. En este punto, no puedo hacer nada; No puedo cerrar la aplicación y no puedo interactuar con la aplicación o el dispositivo. La única forma de volver a usar el dispositivo es reiniciarlo. La aplicación no falla, simplemente desactiva el dispositivo.+ [sincronización de CATransaction] llamado dentro de la transacción

Cuando esto sucede, la siguiente línea aparece en la consola tres veces justo después de applicationWillResignActive y applicationDidEnterBackground:

+[CATransaction synchronize] called within transaction 

Sería casi bien si la aplicación se bloquea, pero el hecho de que la el dispositivo se vuelve completamente inútil es un gran problema. Si pudiera interceptar este error o detectar de alguna manera cuando CATransaction plantea este problema, entonces estaría bien.

¿Alguna idea?

+0

¿Encontró una solución para su problema? – matm

+0

tengo el mismo problema, ¿descubrió el motivo? – nullmicgo

+1

¿Has encontrado alguna respuesta? Parece que no puedo encontrar ninguno en la red y todos mis ajustes y pruebas fracasan. esta [CATransaction synchronize] sigue bloqueando mi hilo principal. – nferocious76

Respuesta

9

Esto sucede cuando más de una animación está teniendo lugar en el hilo principal. Me enfrenté al mismo problema. En mi caso, la aplicación se congela al animar el CALayer y girar el dispositivo simultáneamente. Así que detuve la animación mientras rotaba el dispositivo.

Busque el código de

[CATransaction begin] 

//foo 
[CATransaction commit] 

Asegúrese de que la animación dentro de este código no se superponga con las otras animaciones en hilo principal.

+0

es lo que significa que tengo que hacer esto en todos commitAnimation? [CATransaction begin]; [UIView commitAnimations]; [CATransaction commit]; – nullmicgo

Cuestiones relacionadas