gpt4 book ai didi

ios - 'NSInternalInconsistencyException'试图为同一索引路径使多个单元格出列,这是不允许的

转载 作者:可可西里 更新时间:2023-11-01 00:20:45 26 4
gpt4 key购买 nike

我的应用程序崩溃了

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Attempted to dequeue multiple cells for the same index path, which is not allowed. If you really need to dequeue more cells than the table view is requesting, use the -dequeueReusableCellWithIdentifier: method (without an index path).

当我尝试重新加载我的 tableView 的单个单元格时,这是我按下以重新加载单元格的按钮

 @IBAction func reloadCell(_ sender: UIButton) {

let index = IndexPath(row: sender.tag, section: 0)
self.tableView.reloadRows(at: [index], with: .right)

}

这些是我的 cellForRowDidSelectRow

   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.refButton.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 {
loadPlaces(false)
}
print("CellForRow Call")
return (cell)


}


func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {


tableView.deselectRow(at: indexPath, animated: true)

UIView.animate(withDuration: 0.2, animations: {
let cell = tableView.dequeueReusableCell(withIdentifier: "MyTableViewCell", for: indexPath) as! MyTableViewCell
})
performSegue(withIdentifier: "goToLast" , sender: indexPath)

}

添加断点 我看到应用程序在 DidSelectRow 的这一行崩溃。

let cell = tableView.dequeueReusableCell(withIdentifier: "MyTableViewCell", for: indexPath) as! MyTableViewCell

我该如何解决这个问题?

最佳答案

您的didSelectRowAt 方法应该是:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {


tableView.deselectRow(at: indexPath, animated: true)
self.performSegue(withIdentifier: "goToLast", sender: indexPath)

}

如果您想在 didSelectRowAt 方法中识别您的单元格。你可以这样做:

if let cell = tableView.cellForRow(at: indexPath) as? MyTableViewCell {

}

在您的 didSelectRowAt 方法中。

关于ios - 'NSInternalInconsistencyException'试图为同一索引路径使多个单元格出列,这是不允许的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47886835/

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