Мне было тяжело с потреблением памяти в здоровенном приложении. Я избавился почти от всех утечек памяти. Один раздел имеет масштабируемую UIScrollView
карты, которая довольно велика: 2437x1536. Он выбирает между png в массиве. Раньше я использовал +imageNamed:
, но слышал, что это может иногда приводить к плохой работе приложений, потому что это может держать изображение в кеше, что может занять больше памяти, даже если вы находитесь вне поля зрения, которое его использовало. Сейчас я использую +imageWithData:
. Приложение еще не рухнуло, но после четвертого или пятого запуска раздела карты появляется только часть изображения и мерцающие черные области. Это не случалось раньше с imageNamed. Иногда он полностью исчезает, за исключением только прямоугольного верхнего угла, и я возвращаюсь к другому виду, и там тоже мигает изображение.
Вот что мне нужно для отображения изображения карты. Это в методе представления -initWithFrame:
:
mapList = [[NSMutableArray alloc] init];
[mapList addObject:@"Pacific_Map"];
[mapList addObject:@"Atlantic_Map"];
NSString *mapFileLocation = [[NSBundle mainBundle] pathForResource:[map_List objectAtIndex:mapNum] ofType:@"png"];
NSData *mapIMGData = [NSData dataWithContentsOfFile:mapFileLocation];
mapImageView = [[UIImageView alloc] initWithImage:[UIImage imageWithData:mapIMGData]];
Что-нибудь очевидное, что могло бы вызвать этот эффект?