应用程序崩溃:'尝试将第0行插入第0部分,但更新后第0部分只有0行

时间:2017-12-13 12:28:59

标签: ios swift uitableview

在我的tableView

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

        print("numberOfsection Call")
        return 1
    }

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

        print("numberOfRows Call")
        if places.count < self.numberPlaces {
           return  places.count
      }
       return self.numberPlaces
    }

应用程序因此错误而崩溃:

  

由于未捕获的异常终止应用程序&#39; NSInternalInconsistencyException&#39;,原因:&#39;尝试将第0行插入第0部分,但更新后第0部分只有0行

添加此动画后

    func insertRowsMode3() {            
        numberPlaces = 0
        insertRowMode3(ind: 0)
    }

    func insertRowMode3(ind:Int) {

        let indPath = IndexPath(row: ind, section: 0)
        numberPlaces = ind + 1
        tableView.beginUpdates()
        tableView.insertRows(at: [indPath], with: .right)
        tableView.endUpdates()

        guard ind < places.count-1 else { return }
        DispatchQueue.main.asyncAfter(deadline: .now()+0.20) {

            self.insertRowMode3(ind: ind+1)
        }

    }

有什么问题吗?有一种方法可以创建不会使应用程序崩溃的相同动画吗?

更新

public  func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

        let cell = tableView.dequeueReusableCell(withIdentifier: resueIdentifier, for: indexPath) as! MyTableViewCell
        cell.delegate = self
        cell.myCellNumber.text = "\(indexPath.row + 1)"
        cell.tag = indexPath.row
        cell.refButton.addTarget(self, action: #selector(CourseClass2.reloadCell(_:)), for: .touchUpInside)
        let place = sortedArray[indexPath.row]
        cell.update(place: place)
        cell.selectionStyle = .none

         if indexPath.row == places.count - 1 {
            CarTo(false)
        }
        print("CellForRow Call")
        return (cell)

       }

0 个答案:

没有答案