Mam projekt, który pobiera obrazy w tle przy użyciu NSOperationQueue
. Do tej pory działało na urządzeniach z IOS 4.3. Jeśli jednak zbuduję aplikację z podstawowym sdk 4.3 lub 5 i uruchomę aplikację na urządzeniu z IOS5, aplikacja się zawiesza. Po uruchomieniu aplikacji dodaje obiekty NSOperation
do kolejki, aby pobrać obrazy. Jeśli pomiędzy naciśnięciu przycisku wstecz, mogę anulować NSOperation
i wywala i wyświetla następujący ślad na konsoli:NSOperationQueue nie działa w 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()
i drukuje „ResourceLoadOperation isFinished = Tak bez rozpoczęty przez kolejce to jest w” Jeśli komentarz anuluj wywołanie metody, aplikacja nie zawiesza się. Czy są jakieś aktualizacje zmian NSOperation
dla IOS5?
Mam ten sam problem. Komentowanie zwolnienia obiektu NSOperation czyni trik, jak powiedziałeś, ale nie jestem do końca pewien, czy zarządzanie pamięcią jest w tym przypadku słuszne ... –
Tak, po prostu komentowanie metody anulowania może nie mieć racji pod względem zarządzania pamięcią. Ale czy problem prędkości przetwarzania w ios 5 powoduje ten problem, ponieważ to samo działa na urządzeniach IOS 4.3? – CKT