Swift - 如何在UITableview中获取所选行的数值

时间:2015-05-04 08:07:14

标签: ios uitableview swift selectedindex multipleselection

我对Swift中的UITableview进行了多项选择,并声明了一个包含所选NSIndexPaths单元格的UITableView的数组。

self.selectedRows = self.preferencesTableView.indexPathsForSelectedRows()

如何将此数组转换为可读术语。例如self.selectedRows的NS记录如下:

选定项目字符串[{length = 2,path = 0 - 1},{length = 2,path = 0 - 0},{length = 2,path = 0 - 3}]

我希望能够将其转换为:1,2,3。

在Objective C中,我通过数组enumerateObjectsWithOptions并将数组的id添加到一个可变数组中以获得我想要的东西。

[self.selectedRows enumerateObjectsWithOptions:NSEnumerationReverse
usingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
        NSIndexPath *indexPath = obj;
        [self.selectedCategorieItems addObject:[[[self.categoryArr
objectAtIndex:0] objectForKey:@"id"]objectAtIndex:indexPath.row]];
    }];

我如何在Swift中执行此操作?

2 个答案:

答案 0 :(得分:12)

您可以使用map函数返回索引数组。它将闭包作为参数并迭代数组的每个元素。 $0是第一个参数,在我们的例子中,这是选择的索引路径:

let rows = self.tableView.indexPathsForSelectedRows()?.map{$0.row}

请注意,rows常量是可选的

答案 1 :(得分:1)

for swift 2.3

let rows = tableView.indexPathsForSelectedRows.map{$0.map{$0.row}}