Ios setImage上分配的大量内存:
我有一个以编程方式创建的UIImageView(Ios setImage上分配的大量内存:,ios,objective-c,iphone,memory,Ios,Objective C,Iphone,Memory,我有一个以编程方式创建的UIImageView([[UIImageView alloc]init])。在调用setImage:方法之前,应用程序的内存一直处于检查状态。有什么想法吗?我假设您正在使用以下方法将图像设置为图像视图: [imgV setImage:[UIImage imageNamed:@"yourImg.png"]] 使用它的问题是,应用程序会缓存这些图像。如果要避免缓存图像,请使用imageWithContentsOfFile:: [imgV setImage:[UIImage
[[UIImageView alloc]init]
)。在调用setImage:
方法之前,应用程序的内存一直处于检查状态。有什么想法吗?我假设您正在使用以下方法将图像设置为图像视图:
[imgV setImage:[UIImage imageNamed:@"yourImg.png"]]
使用它的问题是,应用程序会缓存这些图像。如果要避免缓存图像,请使用imageWithContentsOfFile:
:
[imgV setImage:[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"yourImg.png" ofType:nil]]];
另外,使用完图像后,请确保将图像设置为nil
:
[imgV setImage:nil];
我过去对此有过一些问题,以下是我从苹果收到的回复TSI的电子邮件中的一些文字:
在很多情况下,您使用的是API UIImage
+imageNamed:加载图像,但您应该知道imageNamed缓存其图像数据,即使在返回的UIImage对象
释放。将对imageNamed的调用替换为-imageWithContentsOfFile:
如下所述,这是一种确保完全控制应用程序功能的方法
内存中的图像数据
我正在使用[UIImage imageWithData:]在使用完图像视图后,您是否将图像视图的
image
设置为nil
?您正在加载的图像(像素级)有多大?我必须等一分钟:|