【发布时间】:2011-03-02 23:10:46
【问题描述】:
在一个庞大的应用程序中,我一直在处理内存消耗问题。我已经摆脱了几乎所有的内存泄漏。一个部分有一个可缩放的UIScrollView 地图,它非常大:2437x1536。它在数组中的 png 之间进行选择。在我使用+imageNamed: 之前,但我听说这有时会使应用程序运行不佳,因为它可能会将图像保留在缓存中,即使您不在使用它的视图中也会消耗更多内存。现在我使用+imageWithData:。该应用程序尚未崩溃,但在第 4 次或第 5 次启动地图部分时,仅出现部分图像,并且有闪烁的黑色区域。以前使用 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]];
有什么明显的东西会导致这种效果吗?
【问题讨论】:
标签: iphone ipad uiscrollview uiimage nsdata