您的位置:首页 > 移动开发 > IOS开发

[IOS] 图片显示 imageNamed, initWithContentsOfFile 的区别

2014-04-23 16:49 134 查看
1.用imageNamed方法

[UIImage imageNamed:ImageName];


此方法为常见方法,利用它可以方便加载资源图片。用imageNamed的方式加载时,会把图像数据根据它的名字缓存在系统内存中,以提高imageNamed方法获得相同图片的image对象的性能。即使生成的对象被 autoReleasePool释放了,这份缓存也不释放。而且没有明确的释放方法。如果图像比较大,或者图像比较多,用这种方式会消耗很大的内存。

2.用 imageWithContentsOfFile 方法

NSString *thumbnailFile = [NSString stringWithFormat:@"%@/%@.png", [[NSBundle mainBundle] resourcePath], fileName];
UIImage *thumbnail = [UIImage imageWithContentsOfFile:thumbnailFile];


此方法加载的图片是不会缓存的。得到的对象时autoRelease的,当autoReleasePool释放时才释放。

3. 用initWithContentsFile方法

UIImage *image = [[UIImage alloc] initWithContentsOfFile:filePath]


此方法要手动release掉。不系统缓存。release后立即释放,一般用在封面等图比较大的地方。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息