我有一個可變數組:如何從Swift中的數組中刪除選定的索引路徑?
var responseArray = ["yes", "no", "no way", "of course", "for sure", "not a chance", "positively"]
的responseArray
爲我的表視圖中的數據源,其允許多個選擇編輯過程中。
我捕捉選定的指數路徑:
let paths = tableView.indexPathsForSelectedRows()
我可以返回,並各自通過運行println(paths)
選擇我tableView
indexPath
驗證。
我已閱讀indexPathsForSelectedRows
方法的文檔,並瞭解它返回一個索引路徑數組,我按行排序。
我無法理解的是,我如何使用返回的索引路徑數組,從responseArray
中刪除表格視圖中選定要刪除的每一行的數據。
閱讀完一些文檔後,我相信我無法從列表中的`responseArray'中刪除任何數據,這是否正確?例如:
@IBAction func deleteButtonPressed(sender: AnyObject) {
if responseArray.count > 0 {
if let paths = self.tableView.indexPathsForSelectedRows() {
var sortedArray = paths.sorted({$0.row < $1.row})
// Remove index paths from responseArray
for i in sortedArray {
responseArray.removeAtIndex(i.row)
}
self.tableView.reloadData()
}
}
}
我能夠通過一個從表視圖中的一個取出每一行,但是當我選擇第一個和最後一個行,所有行,或行的刪除任何其他組合,我得到fatal error: Array index out of range
。但是,如果我選擇兩個相鄰的行進行刪除,則會實現所需的結果,並將這兩行從表視圖中刪除。
我知道我缺少某些東西,但作爲一名新程序員,我現在無法解決這個問題三天了。我沒做對的是什麼?
我肯定了解這將如何拋出異常。但是,我不知道如何使用數組一次刪除所有選定的索引,因爲該數組只有四個方法來刪除項目:'removeAll()','removeAtIndex()','removeLast()',和'removeRange()'。 – 2014-11-23 02:21:35