应用程序接收内存不足警告,但只有5.7MB的实时字节

Kie*_*lar 10 iphone xcode memory-management instruments ios

我的应用程序一直收到低内存警告,重复操作并最终崩溃.当我在乐器中进行分析时,我只看到崩溃时5.7 MB的活字节.(崩溃显示没有回溯,没有错误等.它只是终止,这表示内存崩溃.)

为什么我的应用程序崩溃了如此低的内存占用?我一直在iPad 1上测试iOS 5.1.

仪器截图

编辑:
我能够修复崩溃.这是因为对具有3个UIImages属性的对象进行了额外的保留调用.这些对象的累积导致内存警告和崩溃.

然而,问题仍然存在:为什么仪器显示只有5.7MB的实时字节?这可能是由于UIImage's自动缓存?

Nic*_*ood 0

我在您发布的代码中看不到任何明显的泄漏,但如果您只是尝试重绘图像(大概是为了强制立即解压),那么这是一种非常复杂的方法。只需这样做:

- (void)loadImage:(UIImage *)image
{
    UIGraphicsBeginImageContextWithOptions(image.size, image.scale);
    [image drawAtPoint:CGPointZero];
    self.someImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
}
Run Code Online (Sandbox Code Playgroud)

希望这能解决您所看到的任何泄漏。