gpt4 book ai didi

ios - "Attempt to delete row from section 1, but there are only 1 sections before update"

转载 作者:搜寻专家 更新时间:2023-10-30 21:58:28 26 4
gpt4 key购买 nike

我正在尝试删除不符合 for 循环条件的行。但是,我收到错误消息:“尝试从第 1 部分删除第 0 行,但更新前只有 1 个部分。”我以前从未见过这个,也不确定为什么会收到它。

我的代码:

 func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

let cell = theTableView.dequeueReusableCellWithIdentifier("MyCell") as! TableViewCell
cell.titleLabel.text = titles[indexPath.row]
cell.priceLabel.text = prices[indexPath.row]
cell.descLabel.text = descs[indexPath.row]
cell.itemImage.image = itemImages[indexPath.row]
cell.userNumber = phoneNumbers[indexPath.row] as! String
cell.timeLabel.text = datesHours[indexPath.row]! + "hr"
cell.distanceLabel.text = String(locations[indexPath.row]!) + "mi"
cell.viewController = self




self.theTableView.beginUpdates()

for (index, number) in self.locations {
if number <= 5 {
let indexPath = NSIndexPath(forRow: number, inSection: 1)
self.theTableView.reloadRowsAtIndexPaths([indexPath], withRowAnimation: .Fade)

}
}
self.theTableView.endUpdates()

最佳答案

您似乎是在告诉表格将有比您实际想要显示的行更多的行,然后在事后删除它们。

相反,您应该检查数组中的元素是否满足 numberOfRowsInSection 中(或之前)的条件,并将它们放入将实际显示的不同数组中,以便表格知道有多少行实际会显示出来。然后在 cellForRowAtIndexPath 中使用新创建的数组,其中包含实际显示的数据。

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// Return the number of rows in the section.

self.displayArray = []
for (index, number) in self.locations {
if number <= 5 {
self.displayArray.Add(self.locations[index])
}
}
return self.displayArray.Count
}

我假设您的错误与您尝试使用首先尝试创建表的方法更新表有关。您正在尝试更新尚未完全创建的内容。

关于ios - "Attempt to delete row from section 1, but there are only 1 sections before update",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32016708/

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