'daki tamsayı dizisinden NSIndexSet'i oluşturun Bir NSIndexSet'i https://stackoverflow.com/a/28964059/6481734 numaralı yanıtı kullanarak bir [Int] dizisine dönüştürdüm. Tam tersini yapmak zorundayım, aynı tür diziyi bir NSIndexSet'e dönüştürmem gerekiyor.Swift
Q
Swift
39
A
cevap
74
Swift 3
IndexSet
şöyle init(arrayLiteral:)
kullanılarak değişmez bir diziden, doğrudan oluşturulabilir:
let indices: IndexSet = [1, 2, 3]
Orjinal cevap (Hızlı 2.2)
pbasdf's answer benzerancak 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)
2
Sen kullanabileceğiniz bir NSMutableIndexSet
ve addIndex
yöntemi:
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)
45
-1
IndexSet
'den beri Set<Int>
kullanımı nasıldır (yeni öğeleri eklemenin bir yolu yoktur)?
var set: Set<Int> = [0]
set.insert(1)
set.insert(2)
return set
+0
IndexSet - readonly (immutable) değil, dec veya var olan deklarasyona bağlıdır. NSIndexSet ile karıştırmayın. – vsilux
11
Swift 3
let fromRange = IndexSet(0...10)
let fromArray = IndexSet([1, 2, 3, 5, 8])
Eklendi fromRange
seçeneği henüz belirtilmeyen çünkü bu cevap.
İlgili konular
Teşekkürler, ancak yeniden yüklemek için kullanıyorumTableSection bir bölüm için çalışıyor mu? – Bruno
@BrunoFernandes Uh ... Ne? – Alexander