В вашем коде я вижу две вещи: вы фактически не вставляете / не удаляете новую строку в вашем UITableView, и блок beginAnimations используется только для этой цели. Из документа :
beginUpdates Начать серию вызовов методов, которые вставляют, удаляют или
выберите строки и разделы получателя.
- (void) beginUpdates Discussion Вызовите этот метод, если вы хотите выполнить последующие операции вставки, удаления и выделения (для
Например, cellForRowAtIndexPath: и indexPathsForVisibleRows) быть
анимированные одновременно. Эта группа методов должна завершаться
вызов endUpdates. Эти пары методов могут быть вложенными. Если вы делаете
не делать вызовы вставки, удаления и выделения внутри этого
блок, атрибуты таблицы, такие как количество строк, могут стать недействительными. Вы
не должен вызывать reloadData внутри группы; если вы вызываете этот метод
внутри группы вам нужно будет выполнять любые анимации самостоятельно.
Второе, что я вижу, это то, что вы также используете блоки анимации, которые сейчас не рекомендуются в документации :
Анимация просмотров
Использование методов в этом разделе не рекомендуется в iOS 4 и более поздних версиях. Вместо этого используйте методы анимации на основе блоков.
Я бы попробовал перейти к новому коду с условным оператором, в зависимости от версии iOS, на которой работает ваше приложение.