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

use*_*353 7 selectedindex uitableview multipleselection ios swift

UITableview在Swift中制作了多个选项,并声明了一个包含NSIndexPaths所选UITableView单元格的数组.

self.selectedRows = self.preferencesTableView.indexPathsForSelectedRows()
Run Code Online (Sandbox Code Playgroud)

如何将此数组转换为可读术语.例如self.selectedRows是NSloglike:

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

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

在Objective CI中通过数组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]];
    }];
Run Code Online (Sandbox Code Playgroud)

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

Ser*_*nov 12

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

let rows = self.tableView.indexPathsForSelectedRows()?.map{$0.row}
Run Code Online (Sandbox Code Playgroud)

请注意,rows常量是可选的