Руководство по программированию Apple View Controller/Управление эффективностью памяти;
didReceiveMemoryWarning
Используйте этот метод для освобождения всех некритических настраиваемых структур данных, связанных с вашим контроллером представления. Хотя вы не использовали бы этот метод для выпуска ссылок на объекты просмотра, вы можете использовать его для публикации любых структур данных, связанных с представлением, которые вы еще не выпустили в вашем методе viewDidUnload. (Объекты представления всегда должны быть выпущены в методе viewDidUnload.)
viewDidUnload
Вы можете использовать метод viewDidUnload для освобождения любых данных, которые зависят от вида, и которые можно легко воссоздать, если представление снова загрузится в память. Если воссоздание данных может быть слишком трудоемким, вам не нужно выделять соответствующие объекты данных здесь. Вместо этого вам следует рассмотреть возможность выделения этих объектов в методе didReceiveMemoryWarning.
-
Для didReceiveMemoryWarning мы рекомендуем освободить некритические структуры данных. Итак, что критическое, а что некритическое?
-
Кроме того, в нем говорится о выпуске того, что мы еще не выпустили в viewDidUnload. Но когда появляется предупреждение о сохранении памяти, вызываемое reReceiveMemoryWarning, и просмотр может быть выгружен, тогда вызывается viewDidUnload. Итак, речь идет о перемещении этих кодов в прежний метод событий (didReceiveMemoryWarning) или мне что-то не хватает о порядке событий?
-
Для viewDidUnload нам рекомендуется заботиться о том, чтобы легко воссоздавать данные при перезагрузке представления. Итак, если представление используется и не может быть выгружено, то почему мы будем отнимать трудоемкие данные в didReceiveMemoryWarning? После того, как эти данные будут выпущены, когда пользователь попытается что-то сделать в текущем представлении, потребуется также много времени для их загрузки.