43 votes

Cocoa NSIndexSet : plusieurs index. Comment créer l'ensemble d'index, plusieurs index ?

J'essaie de comprendre comment créer un ensemble d'index de disons (1, 2, 3) puis l'utiliser dans

 - (void)selectRowIndexes:(NSIndexSet *)indexes byExtendingSelection:(BOOL)extend

C'est le (NSIndexSet *)indexes je ne sais pas utiliser/créer/remplir avec les index 1, 2, 3. Dois-je utiliser une méthode de classe ou une méthode d'instance ?

J'ai essayé plein de manières mais je n'ai aucune idée de ce que je fais...

76voto

Ole Begemann Points 85798

Si les index sont consécutifs comme dans votre exemple, vous pouvez utiliser ceci :

 NSIndexSet *indexSet = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(1, 3)];

Sinon, créez un ensemble d'index mutables et ajoutez les index (ou plages) un par un :

 NSMutableIndexSet *indexSet = [NSMutableIndexSet indexSet];
[indexSet addIndex:3];
[indexSet addIndex:5];
[indexSet addIndex:8];

3voto

HalR Points 5876

Dans Swift 3

 let indexSet = IndexSet(integersIn: 1...3)

ou pour une seule valeur :

 let indexSet = IndexSet(integer: 1)

ou pour des valeurs non consécutives :

 var indexSet = IndexSet()
indexSet.insert(1)
indexSet.insert(3)
indexSet.insert(9)

0voto

Hardik Thakkar Points 11

Voici un exemple pour supprimer l'index sélectionné du tableau local à l'aide de NSMutableIndexSet

 NSArray * arrSelectedSongs = [self.playListTblView indexPathsForSelectedRows];
 //Delete From Array
 NSMutableIndexSet *indexSet = [[NSMutableIndexSet alloc]init];
 for (NSIndexPath *indexPath in arrSelectedSongs)
 {
   [indexSet addIndex:indexPath.row];
 }
 [self.arrFiles removeObjectsAtIndexes:indexSet];

0voto

Oliver Pearmain Points 5096

Il y a aussi

 [NSIndexSet indexSetWithIndex:1];

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X