освобождение tableHeaderView - PullRequest
0 голосов
/ 05 июля 2011

в моем коде я добавляю UIView к своему tableHeaderView.

self.tableView.tableHeaderView = containerView;

А потом мне нужно отпустить или отключить этот. Я пытался использовать

[self.tableView setTableHeaderView:nil];
[tableView reloadData];

но это не работает, у меня была эта ошибка:

malloc: * ошибка для объекта 0x4b1aff0: освобожденный указатель не выделен * установить точку останова в malloc_error_break для отладки

Спасибо за чтение,

Tommy

Ответы [ 4 ]

1 голос
/ 21 августа 2014

Я получил ошибку: EXC_BAD_ACCESS при попытке

[self.tableView setTableHeaderView:nil];

Я изменил:

dispatch_async(dispatch_get_main_queue(), ^{
   self.tableView.tableHeaderView = nil;
});

Это работает для меня.Удачи!

P / s: я знаю, что это старый вопрос: D

0 голосов
/ 05 июля 2011

Вы должны сделать что-то вроде

// First create the containerView
UIView *containerView = [UIView alloc] init..];

// Set it as the table header view (this will retain it)
[self.tableView setTableHeaderView:containerView];

// Now we're done with containerView, so release it:
[containerView release];

Вы могли бы также использовать

UIView *containerView = [UIView alloc] init..] autorelease];

но тогда вам не понадобится последнее сообщение о выпуске.

Если вы хотите «отключить» это представление заголовка, этого должно быть достаточно, чтобы сделать то, что вы написали:

[self.tableView setTableHeaderView:nil];
[self.tableView reloadData];
0 голосов
/ 05 июля 2011

У меня работает с:

self.tableView.tableHeaderView = nil;

, а также

[self.tableView setTableHeaderView:nil];

Я думаю, у тебя может быть другая проблема. Может быть, вы выпускаете свой контейнер ViewView больше, чем нужно.

0 голосов
/ 05 июля 2011

В сообщении об ошибке говорится, что ваш containerView не выделен, а затем при попытке установить для свойства значение nil вы получите ошибку.

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