前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >iOS 加载图片imageNamed 和 imageWithContentsOfFile区别

iOS 加载图片imageNamed 和 imageWithContentsOfFile区别

作者头像
developerbfl
发布2018-06-05 15:43:00
1.5K0
发布2018-06-05 15:43:00
举报
文章被收录于专栏:iOS 开发iOS 开发

Apple官方的文档为生成一个UIImage对象提供了两种方法:

  1. imageNamed,其参数为图片的名字;

[UIImage imageNamed:ImageName];

  1. imageWithContentsOfFile,其参数也是图片文件的路径。

NSString *thumbnailFile = [[NSBundle mainBundle].resourcePath stringByAppendingPathComponent:fileName];

UIImage *thumbnail = [UIImage imageWithContentsOfFile:thumbnailFile];

3.用initWithContentsFile方法

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

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

imageWithContentsOfFile:仅加载图片,图像数据不会缓存。因此对于较大的图片以及使用情况较少时,那就可以用该方法,降低内存消耗。得到的对象是autoRelease的,当autoReleasePool释放时才释放。

第三种方法要手动release掉。不系统缓存。release后立即释放,一般用在封面等图比较大的地方。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.06.04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档