2014-11-20 5 views
2

Я спросил об этом раньше, но я думаю, что мой вопрос не был понят, поэтому снова идет:Предупреждение памяти в Xcode - Что делает в didReceiveMemoryWarning?

Мы больше не обрабатываем память, так как ARC делает это. Мы даже не можем вызывать команды выпуска памяти и т. Д. Итак, что можно сделать программно в RUN TIME, чтобы решить проблему с предупреждением о памяти, если делегат получает уведомление о предупреждении памяти?

Я НЕ хочу знать, как исправить мой код !!! Код не может исправить себя во время выполнения.

Предполагая, что я закодированы правильно, но по-прежнему получать предупреждение памяти, что может быть сделано ..

т.е. Вы можете привести пример того, что код в метод

- (void)didReceiveMemoryWarning 
{ 
    [super didReceiveMemoryWarning]; 
      // Release any cached data, images, etc that aren't in use. 
    ; 
} 

?

+0

Обычно вы регистрируете его и игнорируете. (Но вы, конечно, можете сделать что-то, чтобы освободить память, когда вы получите предупреждение.) –

+0

При получении предупреждений памяти попробуйте освободить объекты в памяти, которые в настоящее время не используются, например изображения, в кэшах памяти, контроллеры просмотра, а не в пользовательском интерфейсе. Вы должны освободить их, чтобы снизить давление памяти и воссоздать их, когда это необходимо. – gagarwal

+0

Горячие Лики: мой вопрос был, что можно сделать? - нет, можно что-нибудь сделать? Я изо всех сил пытаюсь выяснить, ЧТО можно сделать. Мне нужно увидеть какой-то код ... как Джастин так любезно предоставлен. – AbeAndrewsDEV

ответ

2

Конечно, у вас все еще есть контроль над памятью. Вы просто работаете с более высоким уровнем абстракции с ARC.

Вы можете использовать: object = nil, чтобы очистить сильную ссылку. Когда все сильные ссылки очищаются, объект освобождается.

Если вы знакомы с ручным подсчетом ссылок:

object = nil; << ARC 

, как это, когда делаете свой собственный подсчет ссылок:

[object release], object = nil; 
+0

Спасибо, Джастин! Я попробую это. – AbeAndrewsDEV

0

Может быть слишком наивным, но то, что я делаю, это войти текущие значения переменные, поэтому я могу отслеживать ошибки или то, что может вызывать предупреждение.

+0

Это действительно комментарий, а не ответ. С немного больше rep, [вы сможете оставлять комментарии] (// stackoverflow.com/privileges/comment). – manetsus

Смежные вопросы