2017-06-14 107 views
1

你好我使用SwipeCellKitUITableView。我想在刷單元格時進行刪除操作。這是我如何處理刪除部分。 self.deleteLeave()正在調用Web服務並刪除服務器端中所選的離開條目。那麼,如果它在服務器端成功刪除我想刪除從當前數組對象和更新我UITableView。但我的問題是,當我輕掃,然後點擊刪除按鈕,否則拖着它在一定程度上的應用程序被賦予一個異常崩潰。SwipeCellKit崩潰時嘗試刪除

錯誤

終止應用程序由於未捕獲的異常 「NSInternalInconsistencyException」,原因:「無效更新:在部分0中包含的後 現有段中的行數無效 的行數更新(1)必須更新(1)之前等於包含在該部分 行數,加或減 插入或從該部分刪除的行的數量(插入0, 1刪除)和加上或減去移入的行數或流出的 那部分(0中移動,0移出)。」

func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath, for orientation: SwipeActionsOrientation) -> [SwipeAction]? { 
    guard orientation == .right else { return nil } 

    let deleteAction = SwipeAction(style: .destructive, title: "Delete") { action, indexPath in 
     // handle action by updating model with deletion 
     self.com.showProgress() 
     let dict=self.arrayPendings[indexPath.row] as! [String:Any] 
     if let reid=dict["RequestId"] as? Int 
     { 
      self.selectedReqID=String(reid) 
     } 
     self.deleteLeave(){ (status) in 

      if(status) 
      { 

       let delete = SwipeAction(style: .destructive, title: nil) { action, indexPath in 

        self.com.removeProgress() 
        self.arrayPendings.remove(at: indexPath.row) 
        self.tblPendingLeaves.beginUpdates() 
        //self.tblPendingLeaves.insertRows(at: [IndexPath(row: 0, section: 1)], with: .automatic) 
        self.tblPendingLeaves.deleteRows(at: [indexPath], with: .fade) 
        action.fulfill(with: .delete) 
        self.tblPendingLeaves.endUpdates() 
       } 




      } 
     } 

    } 

    // customize the action appearance 
    deleteAction.image = UIImage(named: "Delete") 

    return [deleteAction] 
} 
+0

我有同樣的問題。你修好了嗎? – Codey

回答

0

我刪除了下面的方法,該bug已得到解決。

func numberOfSections(in tableView: UITableView) -> Int { 
}