Кроме того, как уже упоминали другие, если вам нужен только один вызов, оборачивать его в begin / endUpdates не нужно.
я есть UITableViewController, управляющий объектом UITableView в приложении для iPad. Представление таблицы связано с довольно сложным созвездием других объектов. У меня возникла проблема, когда я прошу его перезагрузить строку следующим образом:
//indexPath is an NSIndexPath with indexes 0 and 0. At the moment, this is the only cell in the table view.
NSArray *array = [NSArray arrayWithObject:indexPath];
[self.tableView reloadRowsAtIndexPaths:array withRowAnimation:UITableViewRowAnimationNone];
Проблема в том, что строка не перезагружается. Никогда нет обратного вызова для cellForRowAtIndexPath.
Сумасшедшая вещь в том, что если я вызываю reloadRowsAtIndexPaths дважды, второй вызов вызывает перезагрузку:
//indexPath is an NSIndexPath with indexes 0 and 0. At the moment, this is the only cell in the table view.
NSArray *array = [NSArray arrayWithObject:indexPath];
[self.tableView reloadRowsAtIndexPaths:array withRowAnimation:UITableViewRowAnimationNone]; // does not reload
[self.tableView reloadRowsAtIndexPaths:array withRowAnimation:UITableViewRowAnimationNone]; // does reload
Мне интересно, сталкивался ли кто-нибудь еще с такой ошибкой, и если да, то какова была причина?