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