我创建了一个名为 Medications 的实体,添加新数据的函数是:
@objc func saveUserSettings() {
SVProgressHUD.show()
let name = medicationNameTextField.text
let dosage = dosageTextField.text
let frequency = medicationNameTextField.text
let reminder = dosageTextField.text
let medication = Medications(context: PersistenceService.context)
medication.name = name
medication.dosage = dosage
medication.frequency = frequency
medication.reminder = reminder
PersistenceService.saveContext()
self.meds.append(medication)
}
在表格 View 单元格中按下删除按钮时,如何删除这些索引之一?
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
if editingStyle == .delete {
meds.remove(at: indexPath.row)
let task = meds[indexPath.row]
PersistenceService.saveContext()
self.tableView.reloadData()
}
}
有什么想法吗?
最佳答案
在这里从数组中删除
meds.remove(at: indexPath.row)
不会自动将其从 coreData 中删除,您需要使用
context.delete(object)
在保存上下文之前,请参阅此处 Swift 3 Core Data Delete Object
也要按照正确的顺序去做
let task = meds[indexPath.row]
context.delete(task) // access context anywhere but this statement should run
PersistenceService.saveContext()
meds.remove(at: indexPath.row)
关于swift - 如何从 data core swift 4 中删除 tableview index.row,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53091737/