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];
Вам нужно отпустить settings перед установкой nil, а не после!
settings
nil
То, что вы делаете сейчас, аналогично:
settings = nil; [nil release];
Итакрелиз отправляется на nil, а не на SettingsView объект.(И отправка любого сообщения на nil - это НООП).
SettingsView
правый. Поскольку «настройки» никогда не задавались с помощью @property и @synthesize, установка его в ноль просто стирает адрес памяти, который он держит.
Если вы настроили его с @property (nonatomic, retain) SettingsView *settings;
@property (nonatomic, retain) SettingsView *settings;
затем более поздний вызов settings = nil;
settings = nil;
также отправит сообщение [settings release].
[settings release]