1. 二者不同之处在于
imageNamed默认加载图片成功后会内存中缓存图片,这个方法用一个指定的名字在系统缓存中查找并返回一个图片对象.如果缓存中没有找到相应的图片对象,则从指定地方加载图片然后缓存对象,并返回这个图片对象.
而imageWithContentsOfFile则仅只加载图片,不缓存.
2. 使用场景
-
大图,只加载一次,也不太需要缓存,选择imageWithContentsOfFile
- 当应用程序需要加载一张比较大的图片并且使用一次性,那么其实是没有必要去缓存这个图片的,用imageWithContentsOfFile是最为经济的方式,这样不会因为UIImage元素较多情况下,CPU会被逐个分散在不必要缓存上浪费过多时间.
-
在不大影响性能的情况下,选择 imageName:
- 因为,大量使用imageNamed方式会增加开销CPU的时间来做这件事,所以我们需要根据特定场景慎重选择
UIimage虽小,但使用元素较多问题会有所凸显.