-[ViewController responsedsToSelector:]: сообщение отправлено на освобожденный экземпляр - при прокрутке табличного представления

Подобные вопросы уже задавались в SO. Мой случай немного отличается, поэтому я публикую новый вопрос.

У меня есть scrollView в качестве основного представления для контроллера. Он содержит два подпредставления:

  1. Scrollview, имеющий UIView в качестве ребенка.
  2. Таблица, содержащая несколько числовых текстовых полей.

Я приложил UITapGestureRecognizer для дочернего scrollview, так что пользователь может отклонить клавиатуру из любого текстового поля.

UITapGestureRecognizer *tap1 = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tableTouched:)];
[topScrollview addGestureRecognizer:tap1];
tap1.delegate = self;

-(void) tableTouched:(UITapGestureRecognizer *)gesture
{
    [portTable endEditing:YES];
    portTable.scrollEnabled = YES;
}

-(UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:nil];
    if (cell == nil)
    {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil];
    }

    cell.accessoryType = UITableViewCellAccessoryNone;
    cell.textLabel.font = myFont;
    cell.textLabel.textColor = [UIColor whiteColor];

    switch (indexPath.row) {
        case 0:
        {
            UILabel *tradeLabel = [[UILabel alloc] initWithFrame:CGRectMake(9, 5, 60, 40)];
            tradeLabel.text = @"Trade";
            tradeLabel.font = myFont;
            tradeLabel.textColor = [ColorCodes sharedManager].orangeTextColor;
            tradeLabel.backgroundColor = [UIColor clearColor];
            [cell.contentView insertSubview:tradeLabel aboveSubview:cell.textLabel];
            break;
         }
//similar cases
}
return cell;

}

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

Трассировки стека

Я не могу понять причину отрицательного подсчета ссылок моего контроллера. Я не установил ни одного делегата scrollview, тогда почему счетчик ссылок становится -1?

Я уже пытался прикрепить жест к основному представлению прокрутки, к самому табличному представлению и к дочернему UIView, но все еще получал тот же сбой. Пожалуйста, кто-нибудь направит меня в правильном направлении.. Спасибо.

РЕДАКТИРОВАТЬ

Еще одна трассировка стека, которую я только что получил:

1 ответ

Решение

Я успешно нашел ошибку. Это было из-за пользовательского контроля в камере. Он сохранял и выпускал явно не-ARC (но включенный в проект ARC). Жест не вызывал проблем. Удаление этих строк решило мою проблему.

Другие вопросы по тегам