arrays - 我想从多个 tableView 选择创建一个数组

标签 arrays swift uitableview dictionary nsindexpath

//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/

相关文章:

javascript - JS/d3.js - 删除/合并 d3.js 节点图中的重复链接

iOS - presentViewControllerAnimated 与 window.rootViewController

ios - 更改AppDelegate的 Root View Controller 导致UIViewControllerHierarchyInconsistency异常

iphone - 将 UIViewcontroller 添加到 UIScrollview

iphone - 刷新 UITableView

ruby - 克隆数组获得与原始数组相同的值

c - typedef 定长数组

php - Laravel 4 数据库配置 $_ENV

ios - 动态生成按钮时应用程序移动缓慢

快速在 UITableView 中异步加载图像 - 顶部单元格没有图片