piz*_*lms 4 memory core-graphics core-image ios automatic-ref-counting
首先,感谢本网站上的所有人...这对于深入了解iOS编程非常有帮助.
我目前的问题:
我有一个应用程序,呈现一个非常风格化的照片版本.它为其中一些使用了一些CoreImage过滤器,但需要一堆CoreGraphics来完成繁重的图像处理.
代理大小渲染效果很好,但是当我渲染我的图像的完整分辨率版本时,它有时因内存使用率过高而崩溃.问题是我需要能够在渲染时在内存中有几个全分辨率(3264x2448)缓冲区.我不知道什么或如何释放更多的记忆.我一直非常小心地匹配CGImageRelease到处都可以.
使用ARC,我如何知道某些内容是否真正被释放并释放?将对象设置为nil实际上并没有做任何事情.
我怀疑我可以以任何方式将其传输到磁盘.
任何建议都将非常感谢!
谢谢!
ARC在这样的背景下没有任何区别.
这只是意味着你不必release自己打电话.
对于非ARC,在内存不足的情况下,您可能希望发布一些您并不真正需要的属性(这意味着可以根据需要重新创建它们).
- ( void )didReceiveMemoryWarning:
{
[ _myProperty release ];
_myProperty = nil;
[ super didReceiveMemoryWarning ];
}
Run Code Online (Sandbox Code Playgroud)
在ARC下,它完全相同,除了你不必打电话release:
- ( void )didReceiveMemoryWarning:
{
_myProperty = nil;
[ super didReceiveMemoryWarning ];
}
Run Code Online (Sandbox Code Playgroud)
nil在ARC下将您的属性设置为将自动释放它.
所以它真的有所作为.
如果它不适合你,那么你肯定会有另一个问题.
确保没有内存泄漏,也不保留周期.
最后一个肯定是问题......