对CoreData不熟悉并且仍在学习正确的做法我无法正确删除与其关联的核心数据对象。删除对象的操作正确发生,但不是100%。
我正在删除实体类型的对象' TripDestination'与实体有“一对多”关系的旅行'旅行'。即旅行有很多旅行目的地,但旅行目的地只能与一次旅行相关联。
' TripDestinations'显示在表格中,可以通过UITableView的委托方法删除,并且正确完成。但是,由于在视图的每个ViewWillAppear上执行FetchRequest,因此删除的对象重新出现但显示空值。
现在,我将提及“TripDestination”的删除规则。设置为Nullify。
目标是能够完全从CoreData内存中删除对象,而不是像删除规则那样将对象值设置为null。
修改
if editingStyle == .Delete {
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let managedContext = appDelegate.managedObjectContext
managedContext.deleteObject(destinations[indexPath.row])
do {
try managedContext.save()
} catch let error as NSError {
print("Could not save \(error), \(error.userInfo)")
}
destinations.removeAtIndex(indexPath.row)
tableView.reloadData()
}
Trip上tripDestination的删除规则也无效但我知道它应该是级联的。我还没有实现这个,因为我还没有在Trip对象上实现删除功能(但我知道我应该已经这样做了。)