Swift:将 IndexSet 转换为 [IndexPath]



我想从 Swift 5 中的 IndexSet 获取 [IndexPath]。 在 Objective-C 中将 NSIndexSet 转换为 Array<NSIndexPath *>存在一个问题。 但是在 Swift 5 中没有方法枚举索引使用块。 谁知道路?

在索引上使用map来创建自定义IndexPath,如下所示:

let customIndexPaths = indexes.map { IndexPath(row: $0, section: 0) }
// Or, You can use the short-form, credits: @Vadian
let customIndexPaths: [IndexPath] = indexes.map { [$0, 0] }

还有一个可用于IndexPath的初始值设定项,您可以使用:

let indexes: IndexSet = [0, 1]
let indexPath = IndexPath(indexes: indexes) // Note: this initializer returns just one indexPath not an array `[IndexPath]`

您可以使用扩展。

extension IndexSet {
func indexPaths(_ section: Int) -> [IndexPath] {
return self.map{IndexPath(item: $0, section: section)}
}
}

相关内容

  • 没有找到相关文章

最新更新