我有一個數組,它是表視圖中的一個段的數組。 我有另一個包含數組的數組。 我正確地將它顯示在表格視圖中,但每次我想刪除它時,都會出現錯誤。 我想刪除數組內的完全項目。 這是我走到這一步:在Swift中刪除另一個數組中的項目
class ViewController: UIViewController, UITableViewDelegate {
@IBOutlet var tableView: UITableView!
var eachSection = ["a","ss","dd","heyyyyyy","3"]
var eachStep = [["z","zz"],["x","xx"],["c","cc","ccc"],["r","rr","rrr","rrrr"],["o"]]
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return eachSection.count
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
let sectionString = Array(eachStep)[section]
return sectionString.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath)
// Configure the cell...
let sectionString = Array(eachStep)[indexPath.section]
cell.textLabel?.text = sectionString[indexPath.row]
print(sectionString)
return cell
}
func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
let sectionString = eachSection[section]
return sectionString
}
func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath)
if (editingStyle == UITableViewCellEditingStyle.Delete) {
var sectionString = Array(eachStep)[indexPath.section]
sectionString.removeAtIndex(indexPath.row)
tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Automatic)
}
}
}
這是我得到的錯誤:
終止應用程序由於未捕獲的異常 「NSInternalInconsistencyException」,理由是:「無效的更新:無效 數包含在更新(2)之後的 現有節中的行數必須等於更新前(2)節中包含的 行的數量,正數或負數 插入的行數或從該部分刪除(0插入時, 1刪除)和正或負的行數移入或移出的 那部分(0中移動,0移出)
打印錯誤請 –
是你的數組是可變的?並且是來自websrvice響應(json格式數據)的數組中的數據? – sourav
@OlegGordiichuk **因未捕獲的異常'NSInternalInconsistencyException'而終止應用程序,原因:'無效的更新:第0節中的行數無效。更新(2)後現有節中包含的行數必須等於在更新之前包含在該部分中的行(2),加上或減去從該部分插入或刪除的行數(0插入,1刪除),加上或減去移入或移出該部分的行數(0搬進來,0搬出來)。** – Eliko