为了方便,一开始读取图像资源的时候都是直接使用了[UIImage imageNamed:@""]方法,这个方法非常方便,一句话就可以从bundle中读取图片。
初步测试,功能一切正常。后来发现多次操作之后,应用经常发生内存警告从而导致自动退出的问题。定位之后发现是由于[UIImage imageNamed: @""]分配的图像都没有释放引起的。而之前从官方的reference中得到的信息应该是[UIImage imageNamed:@""]分配的图像系统会放到cache里面。而关于cache管理的规则就没有明确的介绍。由此看来[UIImage imageNamed:]只适合与UI界面中小的贴图的读取,而一些比较大的资源文件应该尽量避免使用这个接口。
最后通过直接读取文件路径[UIImage imageWithContentsOfFile]解决掉这个问题.
本文探讨了在iOS应用开发中使用UIImageimageNamed:接口读取图像资源时引发内存泄漏的问题,并提供了通过直接读取文件路径解决该问题的方法。重点介绍了为何对于较大资源文件应避免使用UIImageimageNamed:接口及其原因,强调了正确的资源管理策略对于避免内存警告和应用崩溃的重要性。
305

被折叠的 条评论
为什么被折叠?



