2014-11-28 2 views
1

Когда пользователь удаляет некоторую строку таблицы с действием «удаление от удаляемого объекта», Инструмент Инструмент показывает, что удаленный экземпляр UITableViewCell все еще жив.UITableView commitEditingStyle: forRowAtIndexPath с ARC вызывает утечку?

я использовал самый обычный подход, который:

-(UITableViewCellEditingStyle) tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    return UITableViewCellEditingStyleDelete; 
} 

-(void) tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    if(editingStyle == UITableViewCellEditingStyleDelete){ 
     // Do Some Processing Model things... 

     [self.tableView beginUpdates]; 
     [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation: UITableViewRowAnimationAutomatic]; 
     [self.tableView endUpdates]; 
    } 

} 

Я не могу уверен, но я думаю, что это ошибка, которая связана с ARC. Могу ли я оставить эту проблему или мне нужно найти какую-нибудь прогулку?

+0

Я столкнулся с той же проблемой. Вы нашли решение? – Joshua

ответ

0

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

+0

Да, это так. Тем не менее, ячейка (удаленная путем прокрутки) все еще жива после освобождения 'UITableViewController'. – jeeeyul

+0

Это странно. Убедитесь, что у вас нет сильного справочного цикла между таблицей и делегатом. – PKP

+0

Это воспроизводимо с примерами от Apple. Эта утечка возникает только при удачном удалении только случая. – jeeeyul

Смежные вопросы