我的应用程序一直收到低内存警告,重复操作并最终崩溃。当我在乐器中进行分析时,我只看到崩溃时5.7 MB的活字节。 (崩溃显示没有回溯,没有错误等等。它只是终止,这表示内存崩溃。)
为什么我的应用程序因内存占用率低而崩溃?我一直在iPad 1上测试iOS 5.1。
修改
我能够解决崩溃问题。这是因为对一个具有3 UIImages
属性的对象进行了额外的保留调用。这些对象的累积导致内存警告和崩溃。
然而,问题仍然存在:为什么仪器显示只有5.7MB的实时字节?这可能是UIImage's
自动缓存吗?
答案 0 :(得分:0)
我看不到您发布的代码中有任何明显的泄漏,但如果您只是想重绘图像(可能是为了强制立即解压缩),那么这是一种非常复杂的方法。就这样做:
- (void)loadImage:(UIImage *)image
{
UIGraphicsBeginImageContextWithOptions(image.size, image.scale);
[image drawAtPoint:CGPointZero];
self.someImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
}
希望这能解决您所看到的任何泄漏。
答案 1 :(得分:0)
您是否在环境变量中将NSZombieEnabled设置为YES?
当启用僵尸时,内存永远不会被释放,但会保留在僵尸池中以调试对无效指针的引用。