Я создал очень простое приложение для iPhone с одним представлением и UIButton с действием для отображения UIAlertView. Я использую следующий кодПроблемы с памятью UIAlertView
- (IBAction)showAlert:(id)sender {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" message:@"Message" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alert show];
[alert release];
}
инструменты распределения экрана инструмент выстрел прилагается.
В изображении, низкие выделения памяти показывает приложение работает без показа UIAlertView
, и высокие пики показывают использование памяти после того, как я показал UIAlertView
, даже я уволил UIAlertView
и отпустить его, но он продолжает показывать то же состояние памяти и жизнь объектов (до 50 000). но когда я нажимаю кнопку «домой», приложение идет в фоновом режиме, и вы можете видеть в прикрепленных изображениях живые объекты и уменьшать память.
Вопросы:
Что не так с моим кодом?
Почему даже после выпуска UIAlertView
он показывает высокое распределение памяти и живые объекты?
Почему мне нужно идти на задний план, чтобы освободить память и живые объекты?
На самом деле я работаю над другим приложением, где я делаю оптимизацию памяти с помощью инструмента инструмента, а uialertview значительно увеличивает живые объекты и не уменьшает использование до тех пор, пока i нажмите кнопку «домой». Поэтому я хочу решить эту проблему. –
Мне стало любопытно, поэтому написал небольшую тестовую программу. В моих тестах только первый UIAlertView увеличивает память, а не дополнительные. И увеличение составляет всего 250 тыс., Поэтому не о чем беспокоиться. Возможно, он кэширует фоновое изображение UIAlertView, например. – fishinear
Да сначала увеличивается, но не уменьшается независимо от того, сколько времени вы тратите на приложение. В моем тестовом приложении живые байты перед первым показом UIAlertView составляют 670 КБ (8285 живых объектов), а после показа предупреждения живые байты составляют 3,50 МБ (48 000 живых объектов) –