Каково различие между applicationDidReceiveMemoryWarning, didReceiveMemoryWarning?

Между чем различие applicationDidReceiveMemoryWarning и didReceiveMemoryWarning? Что лучший способ состоит в том, чтобы обработать те предупреждения?

7
задан raaz 3 October 2012 в 08:39
поделиться

1 ответ

Вы должны использовать "отложенную загрузку" данных во всех ваших представлениях. Например, если вы отображаете список данных в табличном представлении, вы должны освободить данные, когда ваш контроллер представления получит a didReceiveMemoryWarning и устанавливает указатель данных равным нулю.

Большая часть примеров кода Apple подчеркивает эту технику отложенной загрузки.

applicationDidReceiveMemoryWarning - аналогичное сообщение, отправляемое вашему AppDelegate. Вам следует освободить нежелательные глобальные данные, которые вы храните в своем AppDelegate.

Классический пример - Safari. Откройте, скажем, 2-3 вкладки в Safari (в iPhone Simulator). Разрешите всем вкладкам загружать содержимое веб-страницы. Попробуйте переключаться между разными вкладками. Вы должны заметить, что содержимое остается там и не сбрасывается. Теперь в меню закройте «Simulate Memory Warning». Теперь, когда вы переключитесь на другую вкладку, Safari снова получит содержимое. Внутренне произошло то, что URL-адрес запоминается, но все содержимое веб-страницы было выпущено в методе didReceiveMemoryWarning .

Вы также должны реализовать аналогичные механизмы в своем приложении.

11
ответ дан 6 December 2019 в 23:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: