我的应用中有几个图标,我在多个视图中重复使用(例如收藏图标)。
为了节省内存,我想知道是否使用带有加载静态图像的类方法的类是个好主意?
例如:
+ (UIImage *)favoriteIcon {
static UIImage * icon;
if (!icon)
icon = [UIImage imageNamed:@"favorite.png"];
return icon;
}
或者我应该在每次需要时使用+ (UIImage *) imageNamed:(NSString *)name
吗?
感谢您的建议。
答案 0 :(得分:6)
[UIImage imageNamed:]
已经在幕后做了类似的事情。实际上,它更聪明,因为它还可以在内存不足时转储图像,而不需要立即使用它们,而favoriteIcon
方法可以让它们永远加载。
一般情况下,最好避免在构建应用程序之前进行这样的优化,然后对其进行分析以查看需要改进的方式/位置。否则你就是在浪费时间,甚至可能让事情变得更糟。我建议你学习如何使用Instruments来分析你的应用程序,它有点复杂,但是一旦掌握了它就会很有趣。