Сбой приложения при доступе к TableViewCell в методе делегата heightForRowAtIndexPath - PullRequest
1 голос
/ 13 декабря 2011

Сбой приложения при попытке доступа к [tableView cellForRowAtIndexPath: indexPath] в методе делегата heightForRowAtIndexPath.

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{
    if ([tableView cellForRowAtIndexPath:indexPath] someBOOLProperty]) {
        return kSomeHeight;
    } 

    return kDefaultHeight;
}

Ответы [ 3 ]

4 голосов
/ 13 декабря 2011
(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

У нас нет tableViewCell объекта во время вызова вышеупомянутого метода.

Я думаю, использование [tableView cellForRowAtIndexPath:indexPath] внутри вышеуказанного делегата некорректно.

1 голос
/ 13 декабря 2011

Основываясь на том, что сказал Ali3n, я думаю, вам нужно будет использовать набор данных, на котором основана ваша таблица, для определения высоты ячейки, а не использовать содержимое таблицы (которая может еще не существовать).

1 голос
/ 13 декабря 2011

-cellForRowAtIndexPath: вызовет метод делегата -tableView:heightForRowAtIndexPath:, поэтому у вас есть цикл, который приведет к сбою вашего приложения.Вам нужно найти способ сопоставить indexPaths со значениями someBOOLProperty таким образом, чтобы не полагаться на выборку ячейки с -cellForRowAtIndexPath.

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