Найден источник проблемы. Это в следующем фрагменте
UIImage *image = [UIImage imageNamed:imageFile];
cartoon = [[UIImageView alloc] initWithFrame:CGRectMake(0.0, 40.0, 320, 280)];
cartoon.image = image ;
cartoon.backgroundColor = [UIColor brownColor];
У меня есть сотни изображений и текст на каждой странице, и пользователь может прокручивать их, щелкая пальцем (как в приложении для фотографий iphone). Я только создаю 3 страницы в моем UIScrollView и загружаю / выгружаю (и также освобождаю) все, что я явно выделил. Поэтому, когда речь заходит о выпуске мультфильма, я просто выпускаю мультфильм UIImageView, а не UIImage, думая, что он будет выпущен автоматически.
Но похоже, что он не выпускается автоматически. Мое приложение получает предупреждение из памяти (я не предпринимаю никаких действий), и ОС выгружает мои представления, вызывая сбой.
Когда я закомментирую две строки (измененный фрагмент ниже), проблема исчезнет. Без предупреждения нет сбоев.
//UIImage *image = [UIImage imageNamed:imageFile];
cartoon = [[UIImageView alloc] initWithFrame:CGRectMake(0.0, 40.0, 320, 280)];
//cartoon.image = image ;
cartoon.backgroundColor = [UIColor brownColor];
Кто-нибудь знает, как обойти эту проблему? Есть ли способ принудительно освободить память из UIImage при появлении предупреждения?