加载UIImage的好习惯

时间:2013-06-20 15:50:14

标签: ios memory-management uiimage

我的应用中有几个图标,我在多个视图中重复使用(例如收藏图标)。

为了节省内存,我想知道是否使用带有加载静态图像的类方法的类是个好主意?

例如:

+ (UIImage *)favoriteIcon {
    static UIImage * icon;
    if (!icon)
        icon = [UIImage imageNamed:@"favorite.png"];
    return icon;
}

或者我应该在每次需要时使用+ (UIImage *) imageNamed:(NSString *)name吗?

感谢您的建议。

1 个答案:

答案 0 :(得分:6)

[UIImage imageNamed:]已经在幕后做了类似的事情。实际上,它更聪明,因为它还可以在内存不足时转储图像,而不需要立即使用它们,而favoriteIcon方法可以让它们永远加载。

一般情况下,最好避免在构建应用程序之前进行这样的优化,然后对其进行分析以查看需要改进的方式/位置。否则你就是在浪费时间,甚至可能让事情变得更糟。我建议你学习如何使用Instruments来分析你的应用程序,它有点复杂,但是一旦掌握了它就会很有趣。