- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
self.customViewController = [[[CustomViewController alloc] initWithNibName:@"CustomViewController"bundle:nil] autorelease];
[[self navigationController] pushViewController:customViewController animated:YES];
[customViewController release]; // Balance out pushViewController's retain. ---->NO
}
Последний release
является дополнительным, который не нужен.
Вы уже сделали autorelease
, чтобы уменьшить его на 1005 *.
Мы проанализируем эту строку
self.customViewController = [[[CustomViewController alloc] initWithNibName:@"CustomViewController"bundle:nil] autorelease];
вы создаете CustomViewController
счет сохранения == 1.
Вы говорите autorelease
, так что счетчик будет 0 позже (вероятно, конец цикла выполнения), но сейчас это все еще 1, поэтому у вас все еще есть доступ к нему, но обработайте его как 0.
После этого вы говорите self.customViewController
, что свойство сохраняется, поэтому оставьте счет == 1.
И ты позаботишься об этом 1 в твоей сделке.
На ваш комментарий:
// Сбалансировать удержание pushViewController.
Вы не Balance
те, вы балансируете только один YOU own
. Если система сохранит ваши объекты, она освободит их, когда они больше не нужны.