swift2 在Swift中从整数数组创建NSIndexSet

mum43rcc  于 2022-11-06  发布在  Swift
关注(0)|答案(5)|浏览(174)

我使用https://stackoverflow.com/a/28964059/6481734的答案将NSIndexSet转换为[Int]数组,我需要做的基本上是相反的事情,将相同类型的数组转换回NSIndexSet。

xmjla07d

xmjla07d1#

雨燕三号
IndexSet可以使用init(arrayLiteral:)从数组文字直接创建,如下所示:

let indices: IndexSet = [1, 2, 3]

原始答案(Swift 2.2)

pbasdf's answer类似,但使用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)
91zkwejq

91zkwejq2#

这在Swift 3中会容易得多:

let array = [1,2,3,4,5,7,8,10]
let indexSet = IndexSet(array)

哇哦!哇哦!

yjghlzjz

yjghlzjz3#

雨燕3+**

let fromRange = IndexSet(0...10)
let fromArray = IndexSet([1, 2, 3, 5, 8])

添加此答案是因为尚未提到fromRange选项。

dzjeubhm

dzjeubhm4#

雨燕4.2

从现有阵列:

let arr = [1, 3, 8]
let indexSet = IndexSet(arr)

从数组文字:

let indexSet: IndexSet = [1, 3, 8]
x6yk4ghg

x6yk4ghg5#

您可以使用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)

相关问题