Pouvez-vous rapidement énumérer un NSIndexSet
? sinon, quel est le meilleur moyen d'énumérer les éléments de l'ensemble?
Réponses
Trop de publicités?Une boucle while devrait faire l'affaire. Il incrémente l'index après avoir utilisé l'index précédent.
/*int (as commented, unreliable across different platforms)*/
NSUInteger currentIndex = [someIndexSet firstIndex];
while (currentIndex != NSNotFound)
{
//use the currentIndex
//increment
currentIndex = [someIndexSet indexGreaterThanIndex: currentIndex];
}
Réponse courte: non. NSIndexSet
n'est pas conforme au protocole <NSFastEnumeration>
.
En supposant que vous ayez une instance NSTableView
(appelons-la *tableView
), vous pouvez supprimer plusieurs lignes sélectionnées de la source de données (uhm .. *myMutableArrayDataSource
) en utilisant:
[myMutableArrayDataSource removeObjectsAtIndexes:[tableView selectedRowIndexes]];
[tableView selectedRowIndexes]
renvoie un NSIndexSet
. Inutile de commencer à énumérer vous-même les index dans les NSIndexSet
.