i load tableview data from realm
let tasks = realmManager.objects(ModelTask.self).filter("planId == %@", currentPlan.id)
datasource = Array(tasks)
tableViewMain.reloadData()
and delete a item when user click delete in tableview
func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? {
let delete = UITableViewRowAction(style: .normal, title: "删除".localized) {
[weak self] action, index in
guard let `self` = self else {return}
let task = self.datasource[indexPath.row]
let realm = try! Realm()
try? realm.write {
realm.delete(task)
}
self.datasource.remove(at: indexPath.row)
tableView.reloadData()
}
delete.backgroundColor = UIColor(hex:"fe5d5c")
return [delete]
}
and it crashed when realm delete this item.
i got error message reason: 'Object has been deleted or invalidated.'
i'm confused this works fine at other view controller.
why not work here?
Edit ----------
solved this problem .
because after i delete this item , i have a log function that used this item. that's why it always crash.
thank u everyone