2010-02-20 13 views

Antwort

8

Sie sollten "Lazy loading" von Daten in all Ihren Ansichten verwenden. Wenn Sie beispielsweise eine Datenliste in einer Tabellenansicht anzeigen, sollten Sie die Daten freigeben, wenn Ihr Ansichts-Controller eine didReceiveMemoryWarning empfängt und den Datenzeiger auf Null setzt.

Der Großteil des Apple-Beispielcodes betont diese Lazy Loading-Technik.

applicationDidReceiveMemoryWarning ist eine ähnliche Nachricht an Ihre AppDelegate gesendet. Sie sollten unerwünschte globale Daten freigeben, die Sie in Ihrem AppDelegate speichern.

Ein klassisches Beispiel ist Safari. Öffne 2-3 Tabs in Safari (auf iPhone Simulator). Lassen Sie alle Register den Inhalt der Webseite laden. Versuchen Sie, zwischen verschiedenen Tabs zu wechseln. Sie sollten feststellen, dass der Inhalt dort bleibt und nicht gelöscht wird. Schließen Sie nun im Menü "Speicherwarnung simulieren". Wenn Sie nun zu einer anderen Registerkarte wechseln, ruft Safari den Inhalt erneut ab. Intern ist folgendes passiert: Die URL wird gespeichert, aber der gesamte Webseiteninhalt wurde in der didReceiveMemoryWarning-Methode veröffentlicht.

Sie sollten ähnliche Mechanismen auch in Ihrer App implementieren.

Verwandte Themen