//this gives me an array for multiple rows selected in a tableView.
let rowsSelected = self.tableView.indexPathsForSelectedRows!.map{$0.row}
打印语句为我提供了这样的结果,用于选择第 2 行和第 5 行......[2.5]。
我现在想从当前列表中删除这两行。我正在努力寻找创建简化数组的正确概念。字典还是使用 NSIndexPath?
最佳答案
@vadian 的答案很接近,但很危险;请参阅我对他的回答的评论。
要修复此问题,您必须首先反转要删除的索引数组。要了解原因,请在 Playground 中运行以下几行代码:
let indicesToDelete = [4, 8]
var array = ["a", "b", "c", "d", "e", "f", "g", "h", "i"]
let goodReducedArray = indicesToDelete.reverse().map { array.removeAtIndex($0) }
goodReducedArray // prints ["i","e"]
let badReducedArray = indicesToDelete.map { array.removeAtIndex($0) }
badReducedArray // barfs EXC_BAD_INSTRUCTION
因此 @vadian 代码的更正版本将是:
if let selectedIndexPaths = self.tableView.indexPathsForSelectedRows {
selectedIndexPaths.reverse().map{tableData.removeAtIndex($0.row)}
tableView.deleteRowsAtIndexPaths(selectedIndexPaths, withRowAnimation:.Fade)
}
关于arrays - 我想从多个 tableView 选择创建一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35643834/