Итак, я могу добавлять задачи и сохранять их в своем приложении.Теперь я хотел бы удалить задания и сохранить то, что я удалил.Я использую сотовый какао-боб, чтобы позволить пользователю смахивать влево и удалять элементы.Тем не менее, мой код ниже, кажется, не работает так, как я хочу.Во-первых, жест смахивания не работает, а во-вторых, если у меня были «task1», «task2», «task3», я не могу удалить задачу 3, но я могу удалить задачу 1, тогда я могу удалить задачу 3. Кроме того, иногдамой удаленный элемент сохраняется, а иногда нет.Мой код ниже, любая помощь очень ценится.
class DailyTasksTableViewController: UITableViewController {
//Variables
var tasksArray = [Task]()
let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
.....
extension DailyTasksTableViewController: SwipeTableViewCellDelegate {
func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath, for orientation: SwipeActionsOrientation) -> [SwipeAction]? {
guard orientation == .right else { return nil }
let deleteAction = SwipeAction(style: .destructive, title: "Delete") { action, indexPath in
self.context.delete(self.tasksArray[indexPath.row])
self.tasksArray.remove(at: indexPath.row)
do {
try self.context.save()
}catch{
print("error saving delete \(error)")
}
}
// customize the action appearance
deleteAction.image = UIImage(named: "delete-icon")
return [deleteAction]
}
func tableView(_ tableView: UITableView, editActionsOptionsForRowAt indexPath: IndexPath, for orientation: SwipeActionsOrientation) -> SwipeOptions {
var options = SwipeOptions()
options.expansionStyle = .destructive
return options
}
}