Rozdrabnianie sobie włosów z tego powodu, wszelkie myśli i sugestie będą bardzo mile widziane.performSelectorOnMainThread nie wykonuje
Mam obiekt, który wywołuje na sobie performSelectorOnMainThread:withObject:waitUntilDone:
z wątku podrzędnego. Działa to dobrze w 95% przypadków. Co jakiś czas od czasu iOS i teraz do wydania, urządzenie odmawia wykonania połączeń performSelectorOnMainThread:withObject:waitUntilDone:
... Brak komunikatu o błędzie, nie ulega awarii, nie mogę spowodować, że urządzenie przejdzie w stan, w którym "zawiedzie "ale kiedy już się tam znajdzie, nadal kończy się niepowodzeniem, dopóki nie usuniemy i nie zainstaluję ponownie aplikacji, ani nie wymuszam jej zamknięcia, następnie dostosuję jej dodatek na usługi lokalizacyjne, a następnie uruchomę go ponownie, a następnie ponownie dostosuję usługi lokalizacyjne ponownie do normalności. .. ponowne uruchomienie urządzenia nie rozwiązuje go. Ponowna instalacja bez usuwania pierwszego nie rozwiązuje problemu. To bardzo dziwne ... Wiem, że działa przez większość czasu, ponieważ większość urządzeń nie ma problemów, jednak niektóre urządzenia zawodzą nieco regularnie (co 3-4 dni). Wiem, że to konkretnie to, że performSelectorOnMainThread:withObject:waitUntilDone:
nie wywołuje tego, co powinien, ponieważ mam teraz wadliwe urządzenie i umieściłem NSLog w metodzie, która powinna zostać wywołana. Działa to dobrze, ale na uszkodzonym urządzeniu, gdy używa się metody performSelectorOnMainThread:withObject:waitUntilDone:
do wywołania tej metody, NSLog pokazuje, że nie jest uruchamiany ...
To się zaczęło w przypadku iOS 5 betas i znowu dzieje się w momencie wydania. Zdarza się to najczęściej na 2 moich urządzeniach, ale na żadnym z pozostałych 10 urządzeń, które osobiście testowałem. Sądzę, że to było tylko moje urządzenie od jakiegoś czkawki w wersji beta, ale dzieje się to na moim nowym 4S, który nigdy nie dotknął beta, a także na iPadzie 2 jednego użytkownika (nie na moim iPadzie 2).
Naprawdę nie wiem, gdzie szukać. Mówię, aby to wykonać i zwykle działa na prawie każdym urządzeniu, ale ta sama linia nie otrzymuje odpowiedzi i nie ma błędów itp. Na niektórych ...
Czy używasz CoreData przez przypadek? Miałem podobny problem. To, co się naprawdę dzieje, to zakleszczenie wątku czekającego na wykonanie operacji odczytu przy użyciu CoreData, podczas gdy inny wątek próbował napisać. – picciano
@picciano jak sobie z tym poradziłeś? Mam ten sam problem i nie mogę wymyślić, co muszę zrobić, aby naprawić impas. –