ios – 应用程序接收到低内存警告,但只有5.7MB的实时字节

我的应用程序已经收到低内存警告并重复执行,最终会崩溃.当我在仪器中剖析时,我在崩溃时只看到5.7 MB的生活字节. (崩溃显示没有回溯,没有错误等等.它只是终止,这表明内存崩溃.)

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

编辑:
我能够解决崩溃.这是由于对具有3个UIImage作为属性的对象的额外保留调用.这些对象的积累导致内存警告和崩溃.

不过,问题依然存在:为什么仪器显示只有5.7MB的实时字节?这可能是因为UIImage的自动缓存?

解决方法

在你发布的代码中看不到任何明显的泄漏,但是如果你只是想重绘图像(大概是要立即解压缩),那么这是一个非常复杂的方法.只要这样做:
- (void)loadImage:(UIImage *)image
{
    UIGraphicsBeginImageContextWithOptions(image.size,image.scale);
    [image drawAtPoint:CGPointZero];
    self.someImage = UIGraphicsGetimageFromCurrentimageContext();
    UIGraphicsEndImageContext();
}

希望这将修复你看到的任何泄漏.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...