Laut Apple... sollten Anwendungen ihren Speicherbedarf so weit wie möglich reduzieren, wenn sie im "Hintergrund" (im angehaltenen Modus) laufen. Ich reduziere den Speicherbedarf meiner Anwendung, indem ich eine Reihe von 2D-Texturen in ApplicationDidEnterBackground freigebe und die gleichen Texturen in ApplicationWillEnterForeground wieder lade. Im Großen und Ganzen funktioniert alles.
Hier ist meine Frage: Warum erhalte ich einen SIGABRT oder EXEC_BAD_ACCESS, wenn ich meine Anwendung schnell in den/aus dem Hintergrund verschiebe? Die Fehler treten auf, wenn die App wieder in den Vordergrund kommt (Texturen werden neu geladen).
Ich erhalte keine Fehler, wenn ich die Anwendung weniger schnell in den/aus dem Hintergrund verschiebe. Wie kann ich das verhindern? Vielleicht sollte ich prüfen, ob die Ressourcen tatsächlich freigegeben wurden, bevor ich versuche, sie neu zu laden?
Wie kann man defensiv codieren in dieser Situation?