iPhone - Обработка памяти с несколькими представлениями - PullRequest
0 голосов
/ 23 февраля 2010

Вот фрагмент кода из книги 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 голосов
/ 23 февраля 2010

Концепция - это то, что является более важным из книги (освобождение чего-либо несущественного в случае предупреждения о нехватке памяти), а не детали примера (очистка представления, которое вы не используете).

В случае множества представлений ваше приложение использует мой первый вопрос: как часто переключаются представления? Если пользователь какое-то время находится в одном или другом представлении, может быть лучше освободить другие представления, когда вы перемещаете их с экрана, чтобы превентивно предоставить вашему приложению как можно больше свободной памяти. В этом случае пример книги действительно не подходит, так как вы уже очистили все «кэшированные» представления. Если они быстро переключаются между представлениями, то за пределами экрана хорошо следить (установка нового представления стоит довольно дорого). В этом случае вам нужно будет следовать примеру книги в случае нехватки памяти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...