imageNamed 和 imageWithContentsOfFile的区别
imageNamed:
调用imageNamed方法时,系统会先到内存缓存中查找图片,如果找到了,直接使用;
如果没找到,从磁盘或Assets查找,然后加载到缓存;系统可能随时回收内存中缓存的、但当前没有在使用的图片;
多次加载同一张image时,会从缓存直接读取;
imageWithContentsOfFile:
从指定路径加载图片,不会缓存图片对象;
每次调用都会重新将图片加载到内存;
比较: 需要加载大图片、只使用一次,使用imageWithContentsOfFile; 需要经常使用的图片,使用imageNamed;
图片存放在bundle和Asset的区别
将图片存放在bundle:
- 打包后通过查看包内容可以查看到图片;
- 可以通过imageWithContentsOfFile 拿到图片;
- 通过imageNamed 可以拿到图片;
将图片存放在Asset:
- 打包后通过查看包内容查看不到图片;
- 通过imageWithContentsOfFile 拿不到图片;
- 通过imageNamed 可以拿到图片;