Метод обновления раздела в swift 3?

У меня есть код, написанный в объекте c.I хочу преобразовать этот код в код swift3.

  [_expandableTableView reloadSections:[NSIndexSet indexSetWithIndex:gestureRecognizer.view.tag] withRowAnimation:UITableViewRowAnimationAutomatic];

После преобразования с помощью онлайн-инструмента он дал мне код ниже, но он не работает.

expandableTableView.reloadSections(IndexSet(index: gestureRecognizer.view!.tag), with: .automatic)

Скажите, пожалуйста, как это сделать?

Ответ 1

сделайте как в swift3 для получения дополнительной информации см. this

expandableTableView.reloadSections(IndexSet(integer: gestureRecognizer.view!.tag), with: .automatic)

Ответ 2

Обновить раздел в Swift 3.0

i.e Перезагрузка 0-й секции в 0-й раздел, поскольку tableview имеет по умолчанию один раздел, индекс которого равен 0.

//let myRange: ClosedRange = 0...0

self.tableViewPostComments.reloadSections(IndexSet(integersIn: 0...0), with: UITableViewRowAnimation.top)

Ответ 3

Обратите внимание, что после преобразования NSIndexSet стало IndexSet. IndexSet - это наложение Swift в рамки Foundation для NSIndexSet:

Наложение Swift в рамки Foundation предоставляет IndexSet структура, которая соединяет класс NSIndexSet и его изменяемый подкласс, NSMutableIndexSet. Тип значения IndexSet предлагает тот же как ссылочный тип NSIndexSet, и эти два могут быть используется взаимозаменяемо в коде Swift, который взаимодействует с Objective-CAPI-интерфейсы. Такое поведение похоже на то, как Swift соединяет стандартную строку, числовые и типы сбора в соответствующий соответствующий Фонд классы.

Если вы отметили описание сигнатуры метода reloadSections, вы заметите, что это:

reloadSections (_ разделы: IndexSet, с анимацией: UITableViewRowAnimation

sections параметр IndexSet, но NOT NSIndexSet больше.

Итак, что вы можете сделать:

_expandableTableView.reloadSections(NSIndexSet(index: gestureRecognizer.view.tag) as IndexSet, with: .automatic)

ИЛИ Я предпочитаю добавлять IndexSet, даже не используя as IndexSet:

_expandableTableView.reloadSections(IndexSet(integer: gestureRecognizer.view!.tag), with: .automatic)