Блестящие черные пятна с использованием imageWithData в UIScrollView - PullRequest
0 голосов
/ 03 марта 2011

Мне было тяжело с потреблением памяти в здоровенном приложении. Я избавился почти от всех утечек памяти. Один раздел имеет масштабируемую 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]]; 

Что-нибудь очевидное, что могло бы вызвать этот эффект?

1 Ответ

0 голосов
/ 04 марта 2011

Извините, я дважды выделял изображение для внешнего экрана. Это все еще в конечном итоге приводит к краху. Я думал, что не буду кэшировать изображение с помощью этой техники.

...