Получено предупреждение о памяти. Уровень = 1 — приложение UITabBarController с 5 вкладками

#ios #memory-warning

#iOS #память-предупреждение

Вопрос:

Мое приложение состоит из 5 вкладок. Где 4 из них содержат около 20 текстовых полей (созданных грамматически правильно и добавленных в качестве подзаголовка к представлению) в каждом, моя последняя вкладка — это предварительный просмотр предыдущих вкладок (скриншоты). Когда пользователь переходит на эту вкладку, он должен иметь возможность предварительного просмотра и имеет возможность отправлять электронное письмо с предварительным просмотром (прикрепляя скриншоты всех 4 вкладок к электронному письму) Я успешно реализовал это, но в результате появились предупреждения о памяти. Буду признателен за любую помощь в решении моей проблемы.

Я попробовал это таким образом: выпустил объекты в didReceiveMemoryWarning, если представление не отображается

 - (void)didReceiveMemoryWarning
{
    // Releases the view if it doesn't have a superview.
    [super didReceiveMemoryWarning];
    if (!self.view.window) {
        [preparedForTextField release];
        [agentTextField release];
        [phoneTextField release];
        [dateTextField release];
        [textFieldsArray release];
    }
    // Release any cached data, images, etc. that aren't in use.
}
  

и снова перезагрузил представление в viewDidLoad. Тем не менее, я получаю предупреждения о памяти.

Ответ №1:

Если вам нужно, чтобы все, что у вас есть в памяти, было там, просто игнорируйте предупреждение о памяти (особенно предупреждение уровня 1 приходит довольно легко). Если вам не нужно все это там и вы можете позже перезагрузить или воссоздать то, что вам сейчас не нужно, удалите его из памяти до необходимости (а затем перезагрузите или воссоздайте его).

Комментарии:

1. Как вы сказали, я освобождаю объекты при переходе с 1 вкладки на другую вкладку в viewWillDisappear. Снова я создаю объекты в viewWillAppear. Несмотря на то, что я получаю предупреждения о памяти. Что мне делать?

2. Это просто предупреждение, игнорируйте его, если вы больше ничего не можете выпустить, поскольку тогда вы ничего не сможете сделать…