58 votes

Comment stocker un NSRange dans un NSMutableArray ou un autre conteneur?

Voici ce que je veux faire:

 NSRange r = NSMakeRange(0,5);
id a = [NSMutableArray a];
[a addObject: r]; // but NSRange is not a NSObject *
 

Avec un booléen, j'utiliserais un code comme celui-ci:

 [a addObject: [NSNumber numberWithBool: YES]];
 

ou avec un entier:

 [a addObject: [NSNumber numberWithInteger: 3]];
 

Alors, quel est l'équivalent avec NSRange ? Ce que je ne veux pas vraiment faire, c'est créer ma propre sous-classe de NSObject pour accomplir cela. Il y a sûrement un moyen d'utiliser ce que Apple a déjà fourni?

12voto

mipadi Points 135410
 [NSValue valueWithRange:r];
 

et le récupérer avec:

 NSRange r = [rangeObject rangeValue];
 

5voto

James Huddleston Points 5061

Si vous devez stocker les NSRange dans une liste de propriétés, vous pouvez également transformer un NSRange en NSString utilisant la fonction NSStringFromRange . Et ensuite, vous pouvez reconvertir cette chaîne en plage en utilisant la fonction NSRangeFromString .

4voto

Mike Abdullah Points 9464

Une autre option pourrait être d’ajouter ces plages dans un NSIndexSet , selon la façon dont vous envisagez de les utiliser ensuite.

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