Цель C - Где вы имеете дело с глобальными статическими переменными? - PullRequest
11 голосов
/ 07 октября 2009

Или, что противоположно инициализации + (void)?

Вот моя ситуация:

У меня есть класс Unit, чья - (id) initWithName: функция берет данные из глобального NSDictionary, который создается лениво, определенного в файле Unit.m как:

статический NSMutableDictionary * unitLibrary = nil;

Где я могу позвонить в [unitLibrary release]?

Ответы [ 2 ]

13 голосов
/ 07 октября 2009

Вы можете позвонить в место, где, как вы знаете, словарь больше не нужен. Если это необходимо в течение всего жизненного цикла приложения, вам не нужно ничего делать, поскольку все памяти будут возвращены ОС после завершения работы приложения.

3 голосов
/ 07 октября 2009

Нет универсального ответа. Вы должны освободить его, когда будете уверены, что он больше не будет использоваться. Возможные кандидаты могут быть в applicationWillTerminate сообщении делегата или через функцию atexit () .

...