проблема выделения памяти в pushViewController - PullRequest
1 голос
/ 29 ноября 2010

Я создаю приложение, и каждый элемент панели вкладок содержит 4, а иногда и 5 вложенных элементов навигации. Я стараюсь делать все возможное, НО pushViewController вызывает проблему выделения памяти в инструментах, и я не знаю, что я могу сделать,код

[self.navigationController pushViewController:table animated:YES];
[table release];
table=nil;

я пытаюсь напечатать счетчик ссылок, и я был в шоке

счетчик ссылок до нажатия равен = 1, а после нажатия = 4

ПОЧЕМУ??Кто-нибудь может мне помочь??

код, который я использовал для инициализации таблицы:

custemTable *table=[[custemTable alloc] initWithNibName:@"custemTable" bundle:nil ];
 NSString selectedCellText=((custemCell)[tableView cellForRowAtIndexPath:indexPath]).THNameLabel.text;
 cll=(custemCell)[tableView cellForRowAtIndexPath:indexPath];
 cll.backgroundLabel.backgroundColor=[UIColor ];
 [backgroundSelectedCell release];
 backgroundSelectedCell=nil;
 table.showingTill=selectedCellText;
 table.title=@"...";
 selectedCellText=nil;
 [self.navigationController pushViewController:table animated:YES];
 [table release];
 table=nil;

реальная проблема в том, что когда приложение запускает выделение памяти, будет 1,56 М, а когда я выбираю любую ячейку и pushViewController работает, память становится 2,8М, и когда я возвращаюсь, память остается в диапазоне 2,8 М (около 2,7 или 2,6 иногда), чтобы знать ... утечки памяти нет, и я освободил все, что я выделяю, сохраняю или копирую, и я не знаю, что я могу сделать!!!

Ответы [ 2 ]

1 голос
/ 29 ноября 2010

Я бы сказал, что в вашем приложении есть что-то еще, что приводит к утечке памяти.

Можете ли вы вставить больше кода, включая то, как вы создаете * таблицу?положитесь на значения retainCount, чтобы определить, протекает ли объект или нет.Система также сохранит объекты, которые ей нужны, и освободит их, когда они больше не требуются, и на ваш retainCount это всегда будет влиять.это ваша ответственность, чтобы выпустить его.Все остальное обрабатывается системой и будет сброшено с помощью пула автоматического выпуска.

0 голосов
/ 29 ноября 2010

код, который я использовал для инициализации таблицы:

custemTable * table = [[custemTable alloc] initWithNibName: @ "custemTable" bundle: nil]; NSString selectedCellText = ((custemCell) [tableView cellForRowAtIndexPath: indexPath]). THNameLabel.text; cll = (custemCell) [tableView cellForRowAtIndexPath: indexPath]; cll.backgroundLabel.backgroundColor = [UIColor]; [backgroundSelectedCell release]; backgroundSelectedCell = ноль; table.showingTill = selectedCellText; table.title = @ "..."; selectedCellText = ноль; [self.navigationController pushViewController: таблица анимированная: ДА]; [релиз стола]; Таблица = ноль;

реальная проблема в том, что при запуске приложения выделение памяти составляет 1,56 М, а когда я выбираю любую ячейку и pushViewController работает, память становится 2,8 М и когда я возвращаюсь, память остается в диапазоне 2,8 М (иногда около 2,7 или 2,6) чтобы знать .. нет утечки памяти, и я освободил все, что я выделяю или сохраняю или копирую и я не знаю, что я могу сделать !!!

...