В некоторой степени эти две схемы эквивалентны:
Однако существует несколько вещей, которые DVCSes традиционно делают очень хорошо и из которых наиболее централизованные VCSes делают что-то вроде хеша. Самый важный из них, вероятно, переходит: DVCS сделает очень легким перейти репозиторий или объединить ответвления, которые больше не необходимы и будут отслеживать историю, в то время как Вы делаете так. Нет никакой конкретной причины, почему централизованная схема испытала бы затруднения из-за этого, но исторически никто, кажется еще, вполне не разобрался в нем. Является ли это на самом деле проблемой для Вас, зависит от того, как Вы собираетесь организовать разработку, но для многих людей это - значительное соображение.
другое устанавливаемое преимущество DVCSes состоит в том, что они работают офлайн. У меня действительно никогда не было большого использования для этого; я главным образом делаю разработку любой в офисе (так репозиторий в локальной сети) или дома (таким образом, существует ADSL). Если Вы делаете большую разработку на ноутбуках при перемещении тогда, это могло бы быть большим количеством соображения для Вас.
нет на самом деле очень многих глюков, которые характерны для DVCSes. Существует немного большая тенденция для людей успокоиться, потому что можно фиксировать, не продвигая, и легко закончить тем, что полировало вещи конфиденциально, но кроме этого у нас не было очень многих проблем. Это может быть то, потому что у нас есть значительное количество разработчиков ПО с открытым исходным кодом, которые обычно знакомы с торгующей патчем моделью разработки, но входящие разработчики с закрытым исходным кодом также, кажется, берут вещи обоснованно быстро.
Вы не должны пытаться перезагрузить таблицу, пока выбрана ячейка. Вместо этого попробуйте
[cell setNeedsLayout]
после внесения указанных выше изменений в метки.
Кроме того, есть ли причина, по которой вы делаете ссылку на делегат приложения в методе?
Вы пытались обновить только выбранную ячейку вместо перезагрузки всей таблицы?
[ячейка setNeedsDisplay];
вместо
[tableView reloadData];
Это будет иметь лучшую производительность, а я нет, но я полагаю, что выбор теряется, если вы обновляете всю таблицу (это может быть причиной того, что вы не видите никаких изменений в конце) ....
Я согласен, при перезагрузке табличного представления фактически выгружаются и перезагружаются / отображаются все ячейки с использованием tableView: cellForRowAtIndexPath:
и используется исходный данные, а не обновленные @ "xxxxx" и @ "yyyyy" в вашем методе tableView: didSelectRowAtIndexPath:
.
В небольшом тестовом проекте мне удалось изменить метки при выборе:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell * cell = [tableView cellForRowAtIndexPath:indexPath];
cell.textLabel.text = @"it was tapped";
}