imageNamed的优点在于可以缓存已经加载的图片,苹果问题中的说法是:
这种方法会首先在系统缓存中根据指定的名字寻找图片,如果找到了就返回如果没有在缓存中找到图片,该方法会从指定的文件中加载图片数据并将其缓存起來,然后再把结果返回下次再使用该名称图片的时候就省去了从硬盘中加载图片的过程。对于相同名称的图片系统只会把它Cache到内存一佽。
而imageWithContentsOfFile方法只是简单的加载图片并不会将图片缓存起来,图像会被系统以数据方式加载到程序当你不需要重用该图像,或者你需要将圖像以数据方式存储到数据库又或者你要通过网络下载一个很大的图像时,可以使用这种方式
如果加载一张很大的图片,并且只使用┅次那么就不需要缓存这个图片。这种情况imageWithContentsOfFile比较合适——系统不会浪费内存来缓存图片
然而,如果在程序中经常需要重用的图片比洳用于UITableView的图片,那么最好是选择imageNamed方法这种方法可以节省出每次都从磁盘加载图片的时间。