UIImage 的imageNamed内存泄露的解决方法

   UIImage 加载图片使用“[UIImage imageNamed:@"xxx.png"]时,系统会把图像Cache到内存。如果图像比较大,或者图像比较多,用这种方式会消耗很大的内存,而且释放图像的内存是一件相对来说比较麻烦的事情。例如:如果利用imageNamed的方式加载图像到一个动态数组,然后将将数组赋予一个UIView的对象的进行逐帧动画,那么这将会很有可能造成内存泄露。解决上述问题的最佳方法是:

if([[UIScreen mainScreen] respondsToSelector:@selector(scale)] && [[UIScreen mainScreen] scale] == 2.0) {
	[UIImage initWithCGImage:[[UIImage imageWithData:[NSData dataWithContentsOfFile:@"[email protected]"]] CGImage] scale:2.0 orientation:UIImageOrientationUp];
} else {
	[UIImage imageWithContentsOfFile:@"xxx.png"];
}


你可能感兴趣的:(ios,uiimage,imageNamed)