在说加载本地图片的两种方式之前,先说说项目中,图片资源有两种存储方式:
1.图片资源放在Assets.xcassets中
1>这种方式放置的图片资源,在打包成ipa后,会变成Assets.cer。
2>这种方式放置的图片,获取不到该图片的路径。
3>只能使用imageNamed方式加载图片,不能使用imageWithContentsOfFile方法。
2.图片资源放在项目文件中
1>这种方式放置的图片,能够获取到该图片的路径
2>既可以使用imageNamed方式加载,也可以使用imageWithContentsOfFile方法加载图片。
加载本地图片常用以下两种方式的区别:
1.[UIImage imageNamed:]
a.指向它的指针被销毁了,它的内存也无法销毁。
b.放到Assets.xcassets中的图片资源,默认就带有了缓存。所以一般经常用的图片就会存放在Assets.xcassets里面,因为Assets.xcassets里面的图片只能用imageNamed加载。
2.[UIImage imageWithContentsOfFile:]
a.指向它的指针被销毁了,该资源就会从内存中释放了。
b.放到项目中的图片资源,默认就不带有了缓存。所以不经常使用的或者大批量的图片,就吧把资源放在项目中,那么就可以用imageWithContentsOfFile的方式去加载。
通过上面说的图片资源放置的方式不同,所以图片资源放在项目文件中的方式,我们可以获取到图片路径,那么这种图片,以上两种方式都可以使用。
但是Assets中的图片,由于我们获取不到对应的图片路径,那么只能用imageNamed方式来加载。
另:view的animationImages属性调用了,也会带有缓存。