Не могу понять эту утечку - PullRequest
3 голосов
/ 22 июля 2010
SettingsView *settings = [[SettingsView alloc] initWithNibName:@"SettingsView" bundle:[NSBundle mainBundle]];
settings.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[self.navigationController presentModalViewController:settings animated:YES];
settings = nil;
[settings release];

Instruments утверждает, что в следующей строке есть утечка

[self.navigationController presentModalViewController:settings animated:YES];

Ответы [ 2 ]

15 голосов
/ 22 июля 2010

Вам нужно отпустить settings перед установкой nil, а не после!

То, что вы делаете сейчас, аналогично:

settings = nil;
[nil release];

Итакрелиз отправляется на nil, а не на SettingsView объект.(И отправка любого сообщения на nil - это НООП).

0 голосов
/ 06 августа 2010

правый. Поскольку «настройки» никогда не задавались с помощью @property и @synthesize, установка его в ноль просто стирает адрес памяти, который он держит.

Если вы настроили его с @property (nonatomic, retain) SettingsView *settings;

затем более поздний вызов settings = nil;

также отправит сообщение [settings release].

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