Wenn Sie eine Speicherwarnung im Simulator ausgeben (siehe Menü), wird diese für jeden View Controller aufgerufen, der an eine nicht sichtbare Ansicht angehängt ist.
Dies liegt daran, dass View-Controller standardmäßig für Speicherwarnungsbenachrichtigungen registriert sind und alle Views, die derzeit nicht verwendet werden, vom View-Controller entladen werden. Die viewDidUnload-Methode ist vorhanden, sodass Sie alles weitere löschen können , um zusätzlichen Speicher zu sparen (oder wenn Sie einige IBOutlets beibehalten haben, um Speicher freizugeben, der ansonsten durch die entladene Ansicht freigegeben würde).
Im Allgemeinen sollten alle IBOutlets, die Sie in dealloc freigeben, auch in dieser Methode freigegeben (und Referenzen auf null gesetzt).
Es sieht so aus, als würde es nicht unbedingt aufgerufen; Ein UIViewController kann ohne Zuweisen von viewDidUnload freigegeben werden. – beetstra
Nach ausführlichen Tests sehe ich definitiv, dass viewDidUnload manchmal nicht aufgerufen werden kann. Ich sehe, dass View-Controller ohne Aufruf von viewDidUnload dealloc'd werden. –
Diese Frage sollte entfernt werden. viewDidUnload ist veraltet und wird in iOS 6 nicht mehr aufgerufen. –