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

Ios 保存和加载UIImage数据会导致巨大的内存问题,ios,uiimage,Ios,Uiimage,我有一个工作程序,但遇到“堆内存增长”问题 我已经把范围缩小到下面这些方法 基本上,我已经从图库中拍摄了一张图片,并将其导入到我的应用程序中,每次用户访问页面时,我都会使用一种方法“重新加载”它 我需要用7个图像来实现这一点,所以内存管理是必不可少的 ///saves the image /// if(imagepicked==2) { NSData *imageData = UIImagePNGRepresentation(image); NS

我有一个工作程序,但遇到“堆内存增长”问题 我已经把范围缩小到下面这些方法

基本上,我已经从图库中拍摄了一张图片,并将其导入到我的应用程序中,每次用户访问页面时,我都会使用一种方法“重新加载”它

我需要用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,但无法获得正确的代码。
谢谢

将每次加载和保存包装在自动释放池中,以降低峰值

@autoreleasepool {
    ... memory intensive work
}

此代码本身不会导致问题,除非图像尺寸远远超过屏幕尺寸。但是,我想知道为什么要保存刚加载的图像,因为这样做似乎效率低下。我只能想象,如果你正在改变图像,你会这么做,所以我会检查以确保程序正常。但我想知道您是否有更广泛的内存问题,例如视图控制器中的强引用循环?您是否确认当视图控制器被解除时,它的dealloc方法真的被调用了?归根结底,问题的根源在于其他地方。