在加载图片资源时,通常使用有人会使用[UIImage imageNamed:]方法,这样做时候合适呢,你对[UIImage imageWithContentsOfFile:]是否了解呢?
1.[UIImage imageNamed:]
使用[UIImage imageNamed:]方法时系统会将获取的图片缓存下来,并且图片的释放不受程序员的控制,所以当使用比较大且不经常使用的图片时就不适合使用这个方法,这会添加内存负担,而当需要重复的使用一些较小的图片时,这个方法会将图片缓存,在对读取的时候就比较快,能够得到比较好的用户体验句。
2. [UIImage imageWithContentsOfFile]
mageWithContentsOfFile的方式,在使用完成之后系统会释放,不会缓存下来,因此并不会添加内存负担,有些图片在应用中只使用一两次的,就可以用这样的方式,比如新手引导界面的图片等等,就适合这样的方式。
想要验证上面的说法,你可以使用leaks工具来检查用 imageNamed:和 imageWithContentsOfFile分别加载图片时的内存变化.
方法1:

方法2:

然后:

网友评论