我想从 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)}
}
}