Хотите удалить строку из таблицы и удалить соответствующий объект из массива - PullRequest
0 голосов
/ 16 июня 2019

Я хочу удалить одну строку из таблицы в Swift 5 и удалить объект из массива.Я много искал, но не смог этого сделать.

Я перепробовал все связанные решения, доступные в StackOverflow, но не смог его найти.

func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
    let position = indexPath.row
    if (editingStyle == .delete) {

        labDetailsTableView.beginUpdates()
        if let idx = labs.firstIndex(where: { $0 === position }) {
            labs.remove(at: idx)
        }


        labDetailsTableView.endUpdates()
    }
}

Бинарный оператор '=== 'нельзя применять к операндам типа' LabDetails 'и' Int '

1 Ответ

1 голос
/ 16 июня 2019

Замените блок if let на labs.remove(at: position). Нет необходимости в firstIndex.

Вам также не нужны звонки на номера beginUpdates или endUpdates. Но вам нужно добавить вызов к tableView.deleteRows(at: [indexPath], with: .fade).

func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
    if (editingStyle == .delete) {
        let position = indexPath.row
        labs.remove(at: position)
        tableView.deleteRows(at: [indexPath], with: .fade)
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...