У меня есть tableView, где я показываю 0bjects, которые я создаю в другом классе. Объекты хранятся в массиве.Удалить строки и разделы с commitEditingStyle
var whiskyArray = [WhiskyBuilder]()
Из wiskyArray Я создаю словарь для перемещения данных в таблицуView. Словарь составлен с первой буквой как ключ и именами объектов в качестве значения:
var alphabetizedWhiskies = [String: [WhiskyBuilder]]()
Теперь я хотел бы, чтобы удалить клетки с commitEditingStyle:
из Tableview, что я делаю со следующим методом:
func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath)
if editingStyle == UITableViewCellEditingStyle.Delete {
alphabetizedWhiskies[Array(alphabetizedWhiskies.keys.sort())[indexPath.section]]!.removeAtIndex(indexPath.row)
if alphabetizedWhiskies[Array(alphabetizedWhiskies.keys.sort())[indexPath.section]]!.count == 0 {
alphabetizedWhiskies.removeValueForKey(Array(alphabetizedWhiskies.keys.sort())[indexPath.section])
tableView.deleteSections(NSIndexSet(index:indexPath.section), withRowAnimation: .Fade)
}else {
tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Fade)
alphabetizedWhiskies.removeValueForKey(Array(alphabetizedWhiskies.keys.sort())[indexPath.row])
}
}
Этот метод действительно идеален, ячейки удалены. Но каждый раз, когда я возвращаюсь к этому представлению, удаленные ячейки снова возвращаются в таблицу. Я новичок в swift, но я думаю, что это происходит, потому что ячейки удаляются в словаре, но объекты в whiskyArray не являются. Я пытался удалить объекты в whiskyArray:
whiskyArray.removeAtIndex(indexPath.row)
Но с этим, любой объект в whiskyArray удаляется, но не тот, который я хотел бы удалить. Итак, как мне получить нужный объект для удаления в whiskyArray, удалив ячейку в tableView. Я нашел много об удалении tableViewCells, но я не знаю, как удалить объект значения в массиве. Кто-нибудь может мне помочь?