Tengo el código escrito en el objective cI quiero convertir este código en el código swift3.
[_expandableTableView reloadSections:[NSIndexSet indexSetWithIndex:gestureRecognizer.view.tag] withRowAnimation:UITableViewRowAnimationAutomatic];
Después de convertir usando una herramienta en línea, me dio el código siguiente pero no funciona
expandableTableView.reloadSections(IndexSet(index: gestureRecognizer.view!.tag), with: .automatic)
Por favor, dime cómo hacerlo ?
hacer como en swift3 para más información ver esto
expandableTableView.reloadSections(IndexSet(integer: gestureRecognizer.view!.tag), with: .automatic)
Volver a cargar la sección en Swift 3.0
es decir, recargando la sección 0 a la sección 0, ya que tableview tiene una sección por defecto que índice es 0.
//let myRange: ClosedRange = 0...0 self.tableViewPostComments.reloadSections(IndexSet(integersIn: 0...0), with: UITableViewRowAnimation.top)
Tenga en count que después de la conversión, NSIndexSet
convirtió en IndexSet
. IndexSet es la superposition Swift al marco de la Fundación para NSIndexSet :
La superposition Swift al marco de la Fundación proporciona la estructura de IndexSet, que une la class NSIndexSet y su subclass mutable, NSMutableIndexSet. El tipo de valor de IndexSet ofrece la misma funcionalidad que el tipo de reference NSIndexSet, y los dos pueden usarse indistintamente en el código Swift que interactúa con las API de Objective-C. Este comportamiento es similar al modo en que Swift tiende puentes a los types de cadena estándar, numéricos y de colección a sus classs de base correspondientes.
Si seleccionó la descripción de la firma del método reloadSections
, observará que es:
reloadSections (_ secciones: IndexSet, con animation: UITableViewRowAnimation
sections
parámetro de sections
es IndexSet
pero NO NSIndexSet
más.
Entonces, lo que puedes hacer es:
_expandableTableView.reloadSections(NSIndexSet(index: gestureRecognizer.view.tag) as IndexSet, with: .automatic)
O prefiero agregar IndexSet sin usar el as IndexSet
:
_expandableTableView.reloadSections(IndexSet(integer: gestureRecognizer.view!.tag), with: .automatic);
Espero que eso haya ayudado.