2011-08-25 6 views
25

Se chiudo l'app per iPad mentre carico i dati dai servizi, l'app si chiude ma si riapre immediatamente senza che io faccia nulla. A questo punto, non sono in grado di fare nulla; Non riesco a chiudere l'app e non riesco a interagire con l'app o il dispositivo. L'unico modo per utilizzare di nuovo il dispositivo è riavviarlo. L'app non si blocca, semplicemente disabilita il dispositivo.+ [CATransaction synchronize] chiamato all'interno della transazione

Quando questo accade, la seguente riga appare nella console per tre volte subito dopo applicationWillResignActive e applicationDidEnterBackground:

+[CATransaction synchronize] called within transaction 

Sarebbe quasi bene se l'applicazione si blocca, ma il fatto che il il dispositivo è reso completamente inutile è un grosso problema. Se potessi intercettare questo bug o in qualche modo rilevare quando CATransaction solleva questo problema, allora andrebbe bene.

Qualche idea?

+0

hai trovato una soluzione per il tuo problema? – matm

+0

ho lo stesso problema, hai scoperto il motivo? – nullmicgo

+1

Hai trovato qualche risposta? Non riesco a trovare nessuno in rete e tutte le mie modifiche e tentativi falliscono. questo [CATransaction synchronize] sta ancora bloccando il mio thread principale. – nferocious76

risposta

9

Ciò si verifica quando più di un'animazione avviene sul thread principale. Ho affrontato lo stesso problema. Nel mio caso l'applicazione si blocca mentre si anima il CALayer e si ruota il dispositivo contemporaneamente. Così ho fermato l'animazione mentre ruotavo il dispositivo.

cercare il codice

[CATransaction begin] 

//foo 
[CATransaction commit] 

Assicurarsi che l'animazione all'interno di questo codice non si sovrapponga con le altre animazioni sul thread principale.

+0

è questo il significato che devo fare in tutto commitAnimation? [inizio della CATransaction]; [UIView commitAnimations]; [commit CATransaction]; – nullmicgo