wiem, że problem jest związany z alokacji pamięci, ale pobierz go tylko iOS 9, XCode 7. W XCode 6.4, iOS 8.4, działa idealnie, bez problemu w żaden sposób. W iOS 9, XCode 7, po prostu bardzo często ulega awarii, podając ten błąd.(XCode 7 + 9 + iOS iPhone 4s/tylko iPhone5) Problem: "malloc: *** mach_vm_map (size = 1048576) nie powiodło się (kod błędu = 3)"
malloc: *** mach_vm_map(size=1048576) failed (error code=3) *** error: can't allocate region securely *** set a breakpoint in malloc_error_break to debug
Wszelkie sugestie? Pracuję nad problemami z pamięcią, ale zastanawiam się, czy było zbyt wiele problemów z pamięcią, dlaczego więc działa w systemie iOS 8.4, a nie w systemie iOS 9?
Również mam całe UI Whited out! Podobnie jak pasek nawigacji nie ma tytułu, niestandardowy pasek zakładek (RDVTabBar) nie jest widoczny, jednak istnieje inny kontroler widoku (reaguje na zdarzenia dotykowe, można dotknąć tego obszaru, a przycisk umieszczony w tym obszarze działa!).
P.S. Nie otrzymuję ostrzeżenia o zapamiętywaniu, ani nie wywoływana jest metoda applicationWillTerminate:
!
Aktualizacja: Okazało się, że ten problem występuje w iPhone 5 i tylko 4s! (urządzenia dla 64bit!)
UPDATE 2: Kiedy katastrofa nastąpi, próbuję wydrukować jeden obiekt i go wydrukować, znowu ten sam błąd w trybie debugowania: malloc: *** mach_vm_map(size=1048576) failed (error code=3) *** error: can't allocate region securely *** set a breakpoint in malloc_error_break to debug
.
------------------ Aktualizacja ------------------
Cóż, znalazłem coś tutaj: Sprawdziłem moją aplikację w Instruments i wykryłem, że zajmuje ona około 200 MB pamięci w iOS 8.4, a zaskakująco iOS 9. * zajmuje 1,5 GB pamięci !!! To jest coś, czego nie rozumiem! Jedna aplikacja zajmuje 200 MB pamięci w iOS 8.4, a ta sama aplikacja zajmuje ponad 1,5 GB pamięci na iOS 9! W ogóle nie zrozumiałe! Dowolny pomysł?
Proszę pokazać StackTrace. – trojanfoe
Dziwne jest to, że przez większość czasu nie otrzymuję żadnego stosu. Tylko trzy linie i aplikacja zniknęła! –
Zrób jak sugeruje błąd i ustaw punkt przerwania w 'malloc_error_break' i wydrukuj z niego ślad stosu. – casey