imageNamed:
官方解释
Returns the image object associated with the specified filename.
This method looks in the system caches for an image object with the specified name and returns the variant of that image that is best suited for the main screen. If a matching image object is not already in the cache, this method locates and loads the image data from disk or from an available asset catalog, and then returns the resulting object.
The system may purge cached image data at any time to free up memory. Purging occurs only for images that are in the cache but are not currently being used.
In iOS 9 and later, this method is thread safe.
翻译:根据指定的文件名返回相关的image对象。
该方法在系统缓存中查找具有指定名称的图像对象,并返回最适合主屏幕的该图像的变体。 如果缓存中没有找到相应的图片,这个方法从指定的文档中加载然后缓存并返回这个对象。
系统可以随时清除缓存的图像数据,以释放内存。 清除仅针对缓存中的图像而不是当前正在使用的。
在iOS 9及更高版本中,此方法是线程安全的。
imageWithContentsOfFile:
Creates and returns an image object by loading the image data from the file at the specified path.
This method does not cache the image object.
翻译:通过从指定路径的文件加载图像数据来创建并返回图像对象。
此方法不缓存图像对象。
总结:
imageNamed:方法在加载切图时会将切图缓存在系统内存中,对于重复加载的切图此方法的性能会提升很多,用户体验会更好。所以如果某张图片需要在应用中使用多次,或者重复引用,使用imageName的方式会更好。
imageWithContentsOfFile:使用时从沙盒读取,完成之后系统会释放,不会缓存下来。适用于有些图片在应用中只使用一两次的,就可以用这样的方式,比如新手引导界面的图片等等,就适合这样的方式。