我有一个以编程方式创建的UIImageView([[UIImageView alloc] init]
)。在调用setImage:
方法之前,应用程序的内存会一直处于检查状态。有什么想法吗?
答案 0 :(得分:3)
我假设您正在使用以下内容将图像设置为图像视图:
[imgV setImage:[UIImage imageNamed:@"yourImg.png"]]
使用它的问题是应用 缓存 这些图片。如果您想避免缓存图片,请使用imageWithContentsOfFile:
:
[imgV setImage:[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"yourImg.png" ofType:nil]]];
另外,请务必在使用完毕后将图片设置为nil
:
[imgV setImage:nil];
过去我遇到过这方面的问题,这里有一些来自Apple的回复TSI的电子邮件中的文字:
在很多情况下,您使用的是API UIImage + imageNamed:加载图像,但你应该知道,即使在返回的UIImage对象之后,imageNamed也会缓存其图像数据 释放。用-imageWithContentsOfFile替换对imageNamed的调用: 如下所述是确保完全控制您的应用程序的方法 内存中的图像数据