应用程序崩溃,然后重新加载tableview数据

时间:2018-09-18 18:31:53

标签: ios swift uitableview

我在重新加载表视图时遇到问题。然后我在表视图上删除了一些内容,该表视图应该重新加载并且数据应该增加了,但是随后我什么也没删除,行之间有一些空白。 我尝试使用tableview.deleterows,但是在实施此方法后,我的应用程序崩溃了。

  

无效更新:第0节中的无效行数。更新(4)之后现有节中包含的行数必须等于更新(4)前该节中包含的行数,再加上或减去从该部分插入或删除的行数(插入0,删除1),再加上或减去移入或移出该部分的行数(移入0,移出0)。

if editingStyle == UITableViewCellEditingStyle.delete {
            //let mt = movieArray2[indexPath.row]

            //1
            guard let appDelegate =
                UIApplication.shared.delegate as? AppDelegate else {
                    return
            }

            let managedContext =
                appDelegate.persistentContainer.viewContext
            managedContext.delete(self.movieArray2[indexPath.row])
            tableView.deleteRows(at: [indexPath], with: .automatic)


            do{
                try managedContext.save()
            } catch {

            }

 }      

1 个答案:

答案 0 :(得分:1)

您需要在managedContext delete之前保存cell,如下所示:

do{
    let managedContext = appDelegate.persistentContainer.viewContext
    managedContext.delete(self.movieArray2[indexPath.row])
    try managedContext.save()
    self.movieArray2.remove(at:indexPath.row)
    tableView.deleteRows(at: [indexPath], with: .automatic)
  } catch {

 }