Core data 无法从核心数据中删除,swift4

Core data 无法从核心数据中删除,swift4,core-data,swift4,Core Data,Swift4,我无法从核心数据中删除数据。下面是我的代码。当我删除时,数据会从表中删除,但一旦我返回,它会再次显示,因为它不会从核心数据中删除。谢谢 override func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) { let data = (fav[indexPath.row])

我无法从核心数据中删除数据。下面是我的代码。当我删除时,数据会从表中删除,但一旦我返回,它会再次显示,因为它不会从核心数据中删除。谢谢

override func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
            let data = (fav[indexPath.row])
            if editingStyle == .delete {
                  DataSave.deleteData(dataToDelete: data)
                fav.remove(at: indexPath.row)
                tableView.deleteRows(at: [indexPath], with: .automatic)


            }
            self.tableView.reloadData()
        }

**My deleteData function** - 


    class func deleteData(dataToDelete:String) {
            let context = getContext()

            let fetchRequest = NSFetchRequest<City>(entityName: "City")
            if let fetchResults = try!context.fetch(fetchRequest as! NSFetchRequest<NSFetchRequestResult>) as? [City] {
                for result in fetchResults{
                    if result.city_name == [dataToDelete] {
                        context.delete(result)
                        print("deleted from cored data")
                        do {
                            try context.save() 
                        } catch {
                            print("could not delete from core data")
                        }
                    }
                }
            }
        }
重写func tableView(tableView:UITableView,commit editingStyle:UITableViewCellEditingStyle,forRowAt indexPath:indexPath){
let data=(fav[indexPath.row])
如果editingStyle==.delete{
DataSave.deleteData(dataToDelete:data)
fav.remove(位于:indexPath.row)
tableView.deleteRows(位于:[indexPath],带:。自动)
}
self.tableView.reloadData()
}
**我的删除数据函数**-
类func deleteData(dataToDelete:String){
let context=getContext()
let fetchRequest=NSFetchRequest(entityName:“城市”)
如果让fetchResults=try!context.fetch(fetchRequest as!NSFetchRequest)as?[City]{
对于fetchResults中的结果{
如果result.city_name==[dataToDelete]{
context.delete(结果)
打印(“从核心数据中删除”)
做{
尝试context.save()
}抓住{
打印(“无法从核心数据中删除”)
}
}
}
}
}

在context.save()之后重新加载表视图(表示在打印(“从核心数据中删除”)行之后),但是,我的代码不打印“从代码数据中删除”语句或do或catch块中的语句。它永远不会到达for循环,因此它不会在该块中重新加载tableview。当您将dataToDelete与city_名称进行比较时,为什么要将其放入数组中<代码>如果result.city\u name==[dataToDelete]可能应该是
如果result.city\u name==dataToDelete