在这种情况下我没有使用ARC(正确禁用).
我的代码很简单:
UIImage *image = [UIImage imagenamed:@"my_image.jpg"];UIImageVIEw *imageVIEw = [[UIImageVIEw alloc] initWithImage:image];[[self vIEw] addSubvIEw:imageVIEw];[imageVIEw release];
我在UIVIEwController的vIEwDIDLoad:方法中实现此代码.
通过调用UIImage的方法imagenamed:我知道我将得到一个我不拥有的对象/一个自动释放对象.刚刚实例化的UIImageVIEw对象也将保留此对象.所以我拥有的唯一对象是UIImageVIEw.
使用Memory Leaks Instruments运行此应用程序后,我有这样的报告:
我听说过运行的缓存系统,但我不应该有内存泄漏,因为有些数据是缓存的.
以下是对缓存说明的答案的引用:
https://stackoverflow.com/a/2930567/1154501
先感谢您 !
编辑:也尝试使用ARC,我遇到了同样的问题.
解决方法 [UIImage imagenamed:]由 *** 作系统管理.释放从此方法创建的UIImage可能会释放已分配的内存.如果你有很多图像或用户生成的内容,你应该使用[UIImage imageWithContentsOffile:]或[UIImage imageWithData:].如果使用[UIImage imagenamed:]创建太多图像,则由于内存使用情况,您的应用可能会被iOS杀死.我做了一个示例应用程序来向我自己证明这一点,在这里看到更多:iOS UIImage storage formats,memory usage and encoding / decoding
总结以上是内存溢出为你收集整理的ios – UIImage imageNamed内存泄漏全部内容,希望文章能够帮你解决ios – UIImage imageNamed内存泄漏所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)