imageNamed 与 initWithContentsOfFile 区别

1、imageNamed:

1 UIImage *image = [UIImage imageNamed:@"1"];

UIImage的类方法

  第一次读取图片的时候,先把这个图片放到缓存中,下次再使用这个名字的图片时,直接从缓存中读取;如果缓存中不存在这个名字的图像,则先把该图片加载到缓存中,再返回该对象。如果我们需要短时间内频繁的加载一些一次性的图像,最好不要使用这种方法。

  优点:方便快捷,只有第一次使用的时候稍慢,接下来再使用就会稍微快点;

  缺点:如果在当前工程中只使用一次,就会浪费内存。

//

使用imageNamed时候 一旦资源被占用以后,整个应用程序运行过程中,资源不会被释放 (在实际开发中,当需要使用多次用同一张图片时使用)

2、imageWithContentsOfFile:和initWithContentsOfFile:

1 // 获取程序包中一个图片资源的路径
2     NSString *oldImagePath = [[NSBundle mainBundle] pathForResource:@"image" ofType:@"png"];
3     // 根据路径获取图片
4     UIImage *image1 = [UIImage imageWithContentsOfFile:oldImagePath];  // 类方法
5     UIImage *image2 = [[UIImage alloc] initWithContentsOfFile:oldImagePath];  // 对象方法

  imageWithContentsOfFile:  -- UIImage的类方法

  intiWithContentsOfFile:  -- UIImage的对象方法

  每次都根据路径去读取图片,不经过系统缓存,直接从文件系统中加载并返回。不会耗内存,如果加载的图片在工程中只使用一次,应该选择这个方法。当收到内存警告的时候,系统可能会将UIImage内部的存储图像的内存释放,下一次需要的时候重新加载。

//

initWithContentsOfFile  遵循引用计数机制

转载于:https://www.cnblogs.com/menglingxu/p/5517183.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值