UITableViewCell AutoRelease вызывает сбой ...? - PullRequest
0 голосов
/ 06 мая 2011

Не уверен, если кто-нибудь знает, существует ли практическое ограничение на количество постоянно используемых UITableViewCell ...? Прежде всего, я хорошо знаком со всеми правилами управления памятью Obj-C / Apple (я сначала констатирую это, поэтому я не трачу ни на кого время, а они не тратят мое)

Итак, я сразу же спрошу ... есть ли практический предел в отношении механизма "автоматического выпуска", связанного с повторным использованием UITableViewCell's ...? Поскольку я, кажется, испытываю сбой только после определенного числа, обычно переворачивается более 50 страниц ячеек (около 50 страниц + 50 ячеек) ... Тогда из-за того, где я не получу этот сбой .. Иногда никогда бывает вообще, иногда бывает довольно часто, в зависимости от плотности контента ...

Было бы лучше начать вручную удерживать и отпускать самостоятельно ...? Если это так, будет ли у кого-то опыт порекомендовать хорошее место, чтобы освободить их ..?

[tableview tableView:cellForRowAtIndexPath:]: message sent to deallocated instance 0x14e0a920

Хорошо .... Мне не удалось найти что-либо связанное с фактическим UITableViewCell (содержимым ячейки или самой ячейкой), но после добавления нескольких сохранений в контроллер (который создает объект UITableView) «падение» загадочным образом перестало отображаться ...

Вот что я изменил. По сути, я добавил три оператора Retain, которые, между прочим, я использовал оригинальный учебник Пример по «How To» - «UITabBarController» от самопровозглашенного «Iphone Expert», но «эксперт» отрицал включение сохранений .... (это только соответствующая часть кода ...)

//initialize the UITabBarController
tabBarController = [[UITabBarController alloc] init];
TabBarControllerSet = TRUE;

//Create the first UITabBarItem
MainMessageBoard *mainMessageBoard = [[MainMessageBoard alloc] initWithController: self];
[mainMessageBoard setTitle:@"?????"];
[mainMessageBoard retain];    ////******** ADDED This RETAIN ***********

//Create the second UITabBarItem
PostNewComment *postNewComment = [[PostNewComment alloc] initWithController: self];
[postNewComment setTitle:@"????"];
[postNewComment retain];  ////******** ADDED This RETAIN ***********

//Create the third UITabBarItem
logout *Logout = [[logout alloc] initWithController: self];
[Logout setTitle:@"?????"];
[Logout retain];   ////******** ADDED This RETAIN ***********


//add the UIViewControllers to the UITabController
tabBarController.viewControllers = [NSArray arrayWithObjects:mainMessageBoard, postNewComment, Logout, nil];
[tabBarController setDelegate:self];

//release
[mainMessageBoard release];
[postNewComment release];
[Logout release];

[self.view addSubview:tabBarController.view];

1 Ответ

1 голос
/ 06 мая 2011

AFAIK он ограничен только свободной памятью на устройстве - я предполагаю, что он использует какой-то динамический набор в пуле автоматического выпуска и в многократно используемых ячейках табличного представления (т. Е. NSSet или эквивалент более низкого уровня).

Я без проблем использовал табличные представления с десятками тысяч строк.

...