我使用https://stackoverflow.com/a/28964059/6481734的答案将NSIndexSet转换为[Int]数组,我需要做的基本上是相反的事情,将相同类型的数组转换回NSIndexSet。
xmjla07d1#
雨燕三号IndexSet可以使用init(arrayLiteral:)从数组文字直接创建,如下所示:
IndexSet
init(arrayLiteral:)
let indices: IndexSet = [1, 2, 3]
与pbasdf's answer类似,但使用forEach(_:)
forEach(_:)
let array = [1,2,3,4,5,7,8,10] let indexSet = NSMutableIndexSet() array.forEach(indexSet.add) //Swift 3 //Swift 2.2: array.forEach{indexSet.addIndex($0)} print(indexSet)
91zkwejq2#
这在Swift 3中会容易得多:
let array = [1,2,3,4,5,7,8,10] let indexSet = IndexSet(array)
哇哦!哇哦!
yjghlzjz3#
雨燕3+**
let fromRange = IndexSet(0...10) let fromArray = IndexSet([1, 2, 3, 5, 8])
添加此答案是因为尚未提到fromRange选项。
fromRange
dzjeubhm4#
雨燕4.2
从现有阵列:
let arr = [1, 3, 8] let indexSet = IndexSet(arr)
从数组文字:
let indexSet: IndexSet = [1, 3, 8]
x6yk4ghg5#
您可以使用NSMutableIndexSet及其addIndex方法:
NSMutableIndexSet
addIndex
let array : [Int] = [1,2,3,4,5,7,8,10] print(array) let indexSet = NSMutableIndexSet() for index in array { indexSet.addIndex(index) } print(indexSet)
5条答案
按热度按时间xmjla07d1#
雨燕三号
IndexSet
可以使用init(arrayLiteral:)
从数组文字直接创建,如下所示:原始答案(Swift 2.2)
与pbasdf's answer类似,但使用
forEach(_:)
91zkwejq2#
这在Swift 3中会容易得多:
哇哦!哇哦!
yjghlzjz3#
雨燕3+**
添加此答案是因为尚未提到
fromRange
选项。dzjeubhm4#
雨燕4.2
从现有阵列:
从数组文字:
x6yk4ghg5#
您可以使用
NSMutableIndexSet
及其addIndex
方法: