编辑2014年2月: 注意,这个问题可以追溯到 iOS 2.0!图像的要求和处理已经发生了很大的变化。视网膜使图像变大,加载过程稍微复杂一些。内置支持 iPad 和视网膜图像,您当然应该在代码中使用 ImageNamed。
我看到很多人说 imageNamed
很糟糕,但也有相同数量的人说性能很好——特别是在渲染 UITableView
的时候。例如,请参阅 this SO question或 iphonedevelopertips.com 上的 这篇文章
UIImage
的 imageNamed
方法用于泄漏,因此它是最好的避免,但已在最近的版本中修复。我想更好地理解缓存算法,以便做出一个合理的决定,在哪里我可以信任系统缓存我的图像,在哪里我需要去额外的英里和做自己。我目前的基本理解是,它是由文件名引用的 UIImages
的简单 NSMutableDictionary
。它变得越来越大,当内存耗尽时,它就变得越来越小。
例如,是否有人确切地知道 imageNamed
后面的图像缓存不响应 didReceiveMemoryWarning
?苹果似乎不太可能不这么做。
如果您对缓存算法有任何了解,请在这里发布。