美文网首页iOS面试
iOS-imageNamed与imageWithContents

iOS-imageNamed与imageWithContents

作者: 路飞_Luck | 来源:发表于2018-10-14 16:02 被阅读71次
iOS中根据本地icon加载出一个UIImage对象有两种方法:
  • imageNamed:
UIImage *img =  [UIImage imageNamed:@"pic"];

*imageWithContentsOfFile:

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"1" ofType:@"png"];
UIImage *img =  [UIImage imageWithContentsOfFile:filePath];
那么这两种方式有什么区别吗?
imageNamed:方法
  • 后面的参数是icon的名字.图片可以存在项目(bundle)中,也可以存在Assets中。
  • 这个方法只适合一些中小型的图片读取,而一些比较大的资源图片并不适合用这个方法。
  • 这个方法加载完图片后会存在Cache里面,当用这个方法加载的时候,它会在系统缓存中查找并返回一个对象,如果缓存中没有找到对应的对象,这个方法会从指定的文档中加载,再返回对象。
优缺点
  • 优点 当你需要在一个TableView里的Cell里都加载同样一个图标的时候,那么用imageNamed加载图像效率很高。系统会把那个图标Cache到内存,在TableViewCell里每次需要这个图像的时候,只会把图片指针指向同一块内存。
  • 缺点 由于这个方法会把加载的图片存入缓存,虽然提高了运行速度,但是非常消耗内存,一些图片只需要加载一次,根本不会再次使用,但是还是会被加载到内存中.这样做非常消耗内存,尤其是加载一些大图的时候.当内存过大时,会出现内存警告,或者内存泄漏.虽然现在苹果手机内存做了提升,但是还是有必要注意的。
imageWithContentsOfFile:方法
  • 后面的参数是图片的路径
  • 这个方法加载图片时,会根据路径查找,直接加载,使用完后释放,不会存入内存
  • 这个方法适合一些不常用的图片或icon,或者资源比较大图片
优缺点
  • 优点 可以节省内存
  • 缺点 消耗性能

总结: 一些小的icon可以存在Assets里面。用imageNamed:加载。一些比较大的,使用频率低的可以建立一个bundle存放图片,使用imageWithContentsOfFile:加载。


本文参考iOS中imageNamed与imageWithContentsOfFile的区别,非常感谢该作者。


  • 如有错误,欢迎指正,多多点赞,打赏更佳,您的支持是我写作的动力。

相关文章

  • iOS-imageNamed与imageWithContents

    iOS中根据本地icon加载出一个UIImage对象有两种方法: imageNamed: *imageWithCo...

  • iOS中imageNamed与imageWithContents

    iOS中根据本地icon加载出一个UIImage对象有两种方法: 那么这两种方式有什么区别吗?这是肯定的: ima...

  • imageNamed: 与 imageWithContentsO

    imageNamed: 适用于会重复加载的小图片,因为系统会自动缓存加载的图片,imageWithContents...

  • 每日iOS-03 (imageNamed, imageWithC

    imageNamed在从文件系统读取完图片后,会将其存入缓存中 但imageWithContents并不会有存入缓...

  • && 与& ,||与|

    回忆知识点i++,,++i变量在前 先用变量符号(☞++/--)在前 先计算

  • 认真与身板

    认真与身板 认真与态度 认真与自信 认真与信心 认真与诚心 认真与正心 认真与正念 认真与正面 认真与精诚 认真与...

  • 与荒野,与你,与自己

    周末了,想跟大家分享一首诗 《阿莱夫》 诗作者:赖尔逊 阿莱夫在草原上盖了一栋房子, 犹如大海上的灯塔。 但你无法...

  • 与雪与丘与故土

  • 与海与浪与念

    木君 下午,在一段段风雨的催促下来到了绥中。天是被蒙起来的,太阳早已不知躲到哪里去了。微弱的日光和着轻柔的海风洒在...

  • 晚风与柳 孤独与狗 桥与落叶 马与白隙 云与苍天 梭与星月 天与地 生与死 树与来路 花与过往 我与你 爱与恨 夜色与酒

网友评论

    本文标题:iOS-imageNamed与imageWithContents

    本文链接:https://www.haomeiwen.com/subject/ecazaftx.html