UITableView возвращает EXC_BAD_ACCESS - PullRequest
1 голос
/ 25 февраля 2011

Теперь tableView загружается, но когда я пытаюсь прокрутить таблицу вниз, приложение вылетает. Вот мой код:

- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    NSLog(@"ince mal");
    NSLog(@"%f", i);

    UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];

    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
                reuseIdentifier:@"cell"];
    }

    // fill it with contents
    TFHppleElement * element = [searchResults objectAtIndex:indexPath.row];
    NSString * tagContent = [element content];
    cell.textLabel.text = tagContent;

    return cell;
}

Ответы [ 4 ]

2 голосов
/ 25 февраля 2011

Вы не выделили элемент и пытаетесь его освободить. вот в чем проблема.

Удалите [element release] из вашего кода.

Любой объект с оставшимся счетом 0 освобождается, затем он падает.

Установите NSZombieEnabled , чтобы проверить, какой объект освобождается.

EDIT:

Удалите также эти строки,

if (i == indexPath.row) {
    return nil;
}

[tagContent release];

Если вы хотите пустую ячейку, верните как,

if (i == indexPath.row) {
        return cell;  //Before adding any cell contents.
    }
0 голосов
/ 05 апреля 2012

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

0 голосов
/ 25 февраля 2011

Я не вижу ничего плохого в этом коде.Строки заполнения контента могут вызвать некоторые проблемы.Я даже не нашел ни одного релиза в вашем вопросе.CellForRow срабатывает всякий раз, когда вы пытаетесь прокрутить.Поэтому проверьте массив, чтобы получить доступ к его объекту.

0 голосов
/ 25 февраля 2011

Никогда не делайте этого (это привело бы вас к другому сбою (ошибка подтверждения)):

if (i == indexPath.row) {
    return nil;
}

Что касается вашего сбоя:

[element release];
[tagContent release];

удалить эти строки

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