Я пытался решить проблему, связанную с тем, что изображение в моем UIImageView было выпущено из-за предупреждений памяти.
Вот моя ситуация:
1) Я объявляю UIImageView в моем .H:
IBOutlet UIImageView *fightStyleImage;
...
@property (nonatomic, retain) UIImageView *fightStyleImage;
2) Я синтезирую и делок в моем .M:
@synthesize fightStyleImage;
...
...
-(void)dealloc{
[fightStyleImage release];
...
}
3) Я прикрепляю fightStyleImage к UIImageView в Интерфейсном Разработчике.
4) Часть опыта моего приложения позволяет пользователю проводить пальцем по устройству, переключаясь между 5 различными изображениями. Для этого я использую следующий код:
// Load next image
UIImage *theImg = [UIImage imageNamed:@"fighter1.png"];
fightStyleImage.image = theImg;
Все работает очень хорошо, и я доволен производительностью, опытом и т. Д.
Однако, когда я открываю другой контроллер представления (или MFMailComposeViewController, или средство выбора адресной книги), и мое устройство получает предупреждение о памяти (через симулятор или на устройстве), происходит следующее, когда я возвращаюсь в мой оригинальный контроллер представления: iOS, кажется, отбрасывает мое изображение UIImageView (я полагаю, потому что это самый дорогой объект в памяти), и у меня остался черный экран (то есть без изображения). Если я начну снова проводить пальцем, изображения вернутся и продолжат цикл правильно.
Я хотел бы услышать любые мысли по этому поводу, и заранее благодарен за любые решения / идеи, которые кто-либо мог бы иметь. В частности, я заинтересован (конечно!) В восстановлении моего изображения, которое было выброшено из памяти.
-SD