gpt4 book ai didi

ios - 无法从 coredata 实体 swift 中删除对象

转载 作者:行者123 更新时间:2023-11-30 13:03:22 25 4
gpt4 key购买 nike

它正在从核心数据中删除数据,但在deleteRowsAtIndexpaths上它会给出错误,该错误是['无效更新:第0节中的行数无效。更新后现有节中包含的行数(5) 必须等于更新前该部分包含的行数 (5) 加上或减去从该部分插入或删除的行数(0 插入,1 删除)并加上或减去行数移入或移出该部分(0 移入,0 移出)。']

func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
if (editingStyle == UITableViewCellEditingStyle.Delete)
{
var Id = String()
if let RowData : NSDictionary = self.SavedJobs[indexPath.row] as? NSDictionary{
Id = RowData["vacancy_id"] as! String

}


let OptionMenu = UIAlertController(title: "Alert", message: "Vacancy has been deleted", preferredStyle: .Alert)
let Okay = UIAlertAction(title: "Okay" , style: .Cancel, handler: {
(alert: UIAlertAction!) -> Void in
let appDelegate =
UIApplication.sharedApplication().delegate as! AppDelegate

let managedContext = appDelegate.managedObjectContext
print("saved data pre is \(self.SavedData)")
let Job = self.SavedData[indexPath.row] as NSManagedObject
managedContext.deleteObject(Job)
if (self.SavedData[indexPath.row].deleted){
do{
try managedContext.save()
}
catch{}
}
self.SavedJobs.removeObjectAtIndex(indexPath.row)
self.tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Automatic)
self.DeleteService(Id)
self.tableView.reloadData()
})
OptionMenu.addAction(Okay)
self.presentViewController(OptionMenu, animated: true, completion: nil)

}
}

最佳答案

您尝试过使用 beginUpdates 和 endUpdates 吗?即

        self.tableView.beginUpdates()
self.SavedJobs.removeObjectAtIndex(indexPath.row)
self.tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Automatic)
self.DeleteService(Id)
self.tableView.endUpdates()

此外,使用deleteRowsAtIndexPaths时,您不需要调用self.tableview.reloadData()

关于ios - 无法从 coredata 实体 swift 中删除对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39655247/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com