У меня есть модал с дополнительными свойствами.И, как вы уже догадались, я добавляю UIView только для необязательных свойств.В следующем коде dueDate
не является обязательным.У первого есть дата завершения, а у второго нет.
let london = Task( name: "Hello from London",
createdDate: Date(),
isCompleted: false,
dueDate: Date())
let madrid = Task( name: "hola desde madrid",
createdDate: Date(),
isCompleted: false)
Метод источника данных, который вставляет ячейки.
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: TableViewCell.identifier, for: indexPath) as! TableViewCell
if let _ = tasks[indexPath.row].dueDate {
cell.textLabel?.text = "Due Date"
}
return cell
}
Когда я открываю приложение, оно работает, как я ожидаю.Только первая ячейка имеет Due Date
.Я ожидаю, что это так, так как это только первая задача, которая имеет срок выполнения.Однако, когда я удаляю первую ячейку (см. Код ниже) и перезагружаю дату, Due Date
также добавляется во вторую ячейку.Я не понимаю.Я ожидаю, что это не должно быть добавлено, так как у второй задачи нет срока выполнения
Метод делегата, который удаляет ячейки
func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? {
let remove = UITableViewRowAction(style: .normal, title: "Remove") { action, index in
let task = self.tasks.remove(at: indexPath.row)
print(task.name) //
tableView.reloadData()
}
remove.backgroundColor = .red
return [remove]
}
Что я делаю неправильно?Как я могу решить эту проблему?
Если вам нужна дополнительная информация, просто спросите.