Mam dziwną sytuację. Mam dość intensywny proces pamięci (przetwarzanie obrazu), ale udało mi się rozwiązać wszystkie problemy i działa w 99% przypadków.Aplikacja iOS ulega awarii po ostrzeżeniu o pamięci po powrocie z tła, ale nie wcześniej?
Jeśli jednak ustawię aplikację w stanie nieaktywnym lub w tle, po powrocie i próbie uruchomienia tego samego procesu otrzymam ostrzeżenia z pamięci, a następnie aplikacja ulegnie awarii.
Użyłem przyrządów do analizy śladu pamięci w dwóch przypadkach użycia, a ślad pamięci jest dokładnie taki sam. Jednak w przypadku, gdy nie umieszczam aplikacji w tle (lub nieaktywny), nie daje mi to żadnych błędów pamięci i kończy się dobrze. W przypadku użycia, w którym został umieszczony w tle (lub nieaktywny) otrzymuję błędy pamięci i ulega awarii.
Czy ktoś ma jakiekolwiek informacje na ten temat? Przeszukałem net/irc/stack over/apple docs, próbując to zrozumieć. Czy Apple (iOS) zmniejsza ilość pamięci, którą moja aplikacja może uruchamiać po powrocie z tła? Czy istnieje sposób, aby temu zapobiec? Czy mogę przeoczyć inne, bardziej proste rozwiązanie?
(Uwaga, nie ma wycieków pamięci)
Proszę dodać komunikat o błędzie do Q. – mit3z
Nie ma komunikatu o błędzie, ponieważ jest to błąd niskiej pamięci, który powoduje awarię. –
Czy robisz coś w metodach delegowania aplikacji podczas wchodzenia lub wychodzenia z pierwszego planu/rezygnacji/stawania się aktywnym? – jrturton