Esta es mi matriz de sección
var sectionArray = [Sections]()Así es como calculo cuántas filas en la sección
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return sectionArray[section].items.count }y este es mi código para eliminar una fila deslizando.
func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool { return true } func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) { if editingStyle == UITableViewCell.EditingStyle.delete { sectionArray[indexPath.section].remove(at: indexPath.row) if sectionArray[indexPath.section].title.count == 0 { sectionArray.remove(at: indexPath.row) } tableView.deleteRows(at: [indexPath], with: UITableView.RowAnimation.automatic) } } func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? { let delete = UITableViewRowAction(style: .normal, title: "Delete") { action, index in //self.isEditing = false print("delete button tapped") } delete.backgroundColor = UIColor.red return [delete] }Teóricamente, esto debería funcionar, pero recibo un error No hay coincidencias exactas en la llamada al subíndice en
sectionArray[indexPath.section].remove(at: indexPath.row)/// This line sectionArray.remove(at: indexPath.row) /// should be like this sectionArray.remove(at: indexPath.section) /// This line will remove the section from the table tableView.deleteSections(.init(integer: indexPath.section), with: .automatic)Estás usando la fila para eliminar una sección
Editar
Reemplace todo el código que nos proporcionó con este
/* func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool { return true } func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) { if editingStyle == UITableViewCell.EditingStyle.delete { sectionArray[indexPath.section].remove(at: indexPath.row) if sectionArray[indexPath.section].title.count == 0 { sectionArray.remove(at: indexPath.row) } tableView.deleteRows(at: [indexPath], with: UITableView.RowAnimation.automatic) } } func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? { let delete = UITableViewRowAction(style: .normal, title: "Delete") { action, index in //self.isEditing = false print("delete button tapped") } delete.backgroundColor = UIColor.red return [delete] } */ func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? { let delete = UITableViewRowAction(style: .normal, title: "Delete") { action, index in //self.isEditing = false sectionArray[indexPath.section].remove(at: indexPath.row) tableView.deleteRows(at: [indexPath], with: UITableView.RowAnimation.automatic) if sectionArray[indexPath.section].items.isEmpty { sectionArray.remove(at: indexPath.section) tableView.deleteSections(.init(integer: indexPath.section), with: .automatic) } } delete.backgroundColor = UIColor.red return [delete] }