我在
Swift中创建的UITableview上有多个选择,我声明了一个包含所选UITableView Cells的NSIndexPaths的Array.
- self.selectedRows = self.preferencesTableView.indexPathsForSelectedRows()
如何将此数组转换为可读术语.例如self.selectedRows是NSloglike:
选定项目字符串[{length = 2,path = 0 – 1},{length = 2,path = 0 – 0},path = 0 – 3}]
我希望能够将其转换为:1,2,3.
在Objective C中,我通过数组枚举了ObjectsWithOptions,并将数组的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中执行此操作?
解决方法
您可以使用map函数返回索引数组.它将闭包作为参数并迭代数组的每个元素. $0是第一个参数,在我们的例子中这是选择的索引路径:
- let rows = self.tableView.indexPathsForSelectedRows()?.map{$0.row}
请注意,行常量是可选的