So i can add some city from API and when i try to delete some city from UITableViewController then all cities are deleted. Can someone help me please where i made mistake. I gave an example of the code below
//this is my delete func from CoreData
func deleteCity() {
let fetchRequest: NSFetchRequest<Cities> = Cities.fetchRequest()
if let cities = try? context.fetch(fetchRequest) {
for city in cities {
context.delete(city)
}
}
do {
try context.save()
} catch let error as NSError {
print(error.localizedDescription)
}
}
//this is how i create cities array
func fetch() -> [Weather] {
let fetchRequest: NSFetchRequest<Cities> = Cities.fetchRequest()
do {
let cities = try context.fetch(fetchRequest)
return cities.map({Weather(name: $0.cityName ?? "", temp: $0.cityTemp)})
} catch {
return []
}
}
//and this how i try to delete city from UITableViewController
override func tableView(_ tableView: UITableView, trailingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? {
let actionDel = UIContextualAction(style: .destructive, title: "Delete") { _, _, completionHandler in
self.cityTemps.remove(at: indexPath.row)
self.coreDataManaer.deleteCity()
DispatchQueue.main.async {
tableView.reloadData()
}
}
let actions = UISwipeActionsConfiguration(actions: [actionDel])
return actions
}