Ho un progetto che scarica le immagini in background utilizzando NSOperationQueue
. Fino ad ora funzionava su dispositivi con IOS 4.3. Tuttavia, se costruisco l'app con base sdk 4.3 o con 5 ed eseguo l'app sul dispositivo con IOS5, l'app si arresta in modo anomalo. Quando l'app viene avviata, aggiunge gli oggetti NSOperation
in coda per il download delle immagini. Se tra premo il tasto indietro, a cancellare il NSOperation
e si blocca e visualizza seguente traccia su console:NSOperationQueue non funziona in IOS5
#0 0x004727b7 in ____NSOQSchedule_block_invoke_0() #1 0x026a5618 in _dispatch_call_block_and_release() #2 0x026a7a10 in _dispatch_worker_thread2() #3 0x974bb781 in _pthread_wqthread() #4 0x974bb5c6 in start_wqthread()
e stampe "ResourceLoadOperation isfinished = YES senza essere avviato dalla coda è in" Se io commento la chiamata al metodo cancel, l'app non si blocca. Esistono aggiornamenti sulle modifiche NSOperation
per IOS5?
Ho lo stesso problema. Commentare il rilascio dell'oggetto NSOperation fa il trucco, come hai detto tu, ma non sono molto sicuro che la gestione della memoria sia corretta in questo caso ... –
Sì, solo commentare il metodo cancel potrebbe non essere corretto in termini di gestione della memoria. Ma questo è un problema della velocità di elaborazione in iOS 5 che causa questo problema poiché lo stesso funziona bene su dispositivi IOS 4.3? – CKT