Под расширениями и контрактами подразумевается просто удаление всех записей (всей таблицы или по разделам?) Или анимация удаления / добавления представления таблицы с экрана.
Если вы имеете в виду удаление / добавление строк, то вам лучше всего иметь массив, содержащий все ваши действительные действительные данные, и массив, содержащий данные «Это то, что пользователь может видеть» - так что вы очистите это или его части при удалении / добавлении строк.
Чтобы получить indexPaths, вы можете использовать [NSIndexPath indexPathForRow:<#(NSUInteger)#> inSection:<#(NSUInteger)#>]
, чтобы создать отдельные пути и поместить их в массив, который вы передаете этому методу.
Просто убедитесь, что вы поддерживаете массив "Это то, что пользователь может видеть", когда вы добавляете / удаляете строки, так как когда в табличном представлении отображаются ячейки, он будет запрашивать ваши базовые данные.