iPhone - 处理多视图内存

时间:2010-02-23 00:21:31

标签: iphone memory-management uiview uiviewcontroller

以下是探索iPhone SDK书籍的一段代码。它使用了2个视图的示例。它会检查正在使用哪个视图,并将释放另一个视图。

- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning]; // Releases the view if it
    // doesn't have a superview

    // Release anything that's not essential, such as cached data
    if (self.blueViewController.view.superview == nil)
        self.blueViewController = nil;
    else
       self.yellowViewController = nil;
}

我的问题是:如果我的应用程序有很多视图,例如15,我是否需要检查上面的每个视图并释放未使用的视图?或者在这种情况下是否使用了不同的技术?`

1 个答案:

答案 0 :(得分:0)

这个概念更重要的是本书(在低内存警告的情况下释放任何不重要的东西)而不是示例的细节(清除你没有使用的视图)。

如果您的应用程序使用了很多视图我的第一个问题是视频切换的频率是多少?如果用户暂停一个或另一个视图一段时间,最好在将其转移到屏幕之前释放其他视图,以便尽可能多地为应用程序提供尽可能多的可用内存。在这种情况下,本书的示例实际上不适用,因为您已经清除了所有“缓存”视图。如果他们在视图之间快速切换,那么屏幕外视图就可以保留(设置新视图有点贵)。在这种情况下,您需要在低内存事件中遵循本书的示例。