#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. Это просто предупреждение, игнорируйте его, если вы больше ничего не можете выпустить, поскольку тогда вы ничего не сможете сделать…