我对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中执行此操作?
答案 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}}