ios - declarar - substring swift 5
Crear NSIndexSet a partir de una matriz entera en Swift (5)
Swift 3
IndexSet
se puede crear directamente desde un literal de matriz usando
init(arrayLiteral:)
, de esta manera:
let indices: IndexSet = [1, 2, 3]
Respuesta original (Swift 2.2)
Similar a
la respuesta de pbasdf
, pero usa
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)
Convertí un NSIndexSet a una matriz [Int] usando la respuesta en https://stackoverflow.com/a/28964059/6481734 Necesito hacer esencialmente lo contrario, convirtiendo el mismo tipo de matriz en un NSIndexSet.
Esto será mucho más fácil en Swift 3:
let array = [1,2,3,4,5,7,8,10]
let indexSet = IndexSet(array)
¡Guauu!
Puede usar un
NSMutableIndexSet
y su método
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)
Swift 3+
let fromRange = IndexSet(0...10)
let fromArray = IndexSet([1, 2, 3, 5, 8])
Se agregó esta respuesta porque la opción
fromRange
aún no se mencionó.
Swift 4.2
De la matriz existente:
let arr = [1, 3, 8]
let indexSet = IndexSet(arr)
De la matriz literal:
let indexSet: IndexSet = [1, 3, 8]