保存和加载UIImage数据会导致巨大的内存问题

时间:2014-05-03 12:20:56

标签: ios uiimage

我有一个正在运行的程序,但遇到了堆内存增长的问题' 我已将其缩小到以下方法

基本上我从画廊拍摄了一张图片,将其导入到我的应用中,并使用了一种方法。重新加载'它每次用户访问页面

我需要用7张图片来做这件事,所以内存管理势在必行

     ///saves the image ///
     if(imagepicked==2)
    {
     NSData *imageData = UIImagePNGRepresentation(image);

     NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,    NSUserDomainMask, YES);
     NSString *documentsDirectory = [paths objectAtIndex:0];

     NSString *filename = [documentsDirectory stringByAppendingPathComponent:@"face.png"];

     [imageData writeToFile:filename atomically:NO];


///loads the image ///
     NSString *cachedImagePath3 = [cachedFolderPath1         stringByAppendingPathComponent:@"face.png"];
     UIImage *image3 = [UIImage imageWithData:[NSData dataWithContentsOfFile:cachedImagePath3]];

     newfacebookimage.image = image3;

一切正常,但会导致大量内存问题

我也尝试过使用NSuserdefaults但是无法正确使用代码。 感谢

1 个答案:

答案 0 :(得分:0)

包裹每个负载&保存在autoreleasepools中以减少峰值

@autoreleasepool {
    ... memory intensive work
}