2010-11-08 54 views
0

我有一个UIImage,我用我的应用程序作为分组UITableViews的背景图像。共享UIImageView的整个应用程序的背景图像 - Singleton属性

我认为,为了提高效率,我会在我的appDelegate中使用我的UIImage分配和初始化UIView,然后访问整个应用程序。这样,我只会分配一次imageView,如果我钻入一个带有多个表视图的导航堆栈,我不需要担心释放和恢复图像,因为我在每一步都会下降或上升或者开销。

只要我尝试这个,我注意到,似乎UITableView类释放我的共享图像降到0,因此它将消失。完美的感觉,但我需要防止图像从来没有达到0保留计数这个工作。

这是一个完全愚蠢的方法?

如果不是保留我的共享ImageView的最佳方式是什么?我知道我可以在设置每个tableview的backgroundimage时调用retain,但是我想知道是否有方法将appDelegate中的共享UIImageView的保留计数设置为NSUIntegerMax。我之前已经设置了单例类,但在这种情况下,我试图拥有一个永远不会释放的属性,而不是创建UIImageView单例子类。

对不起,如果这有点混乱,并感谢任何指针。

回答

2

我不会太担心+ (UIImage *)imageNamed:(NSString *)name被缓存。 从规格:

此方法在系统缓存中查找具有指定名称的图像对象,并返回该对象(如果存在)。如果匹配的图像对象不在缓存中,则此方法从指定的文件加载图像数据,将其缓存,然后返回结果对象。

+0

谢谢。与往常一样,基于本能而不是对问题做出反应的过早优化证明是危险的。 – Nick 2010-11-08 16:14:41