Voici ce que je veux faire:Comment stocker un NSRange dans un NSMutableArray ou un autre conteneur?
NSRange r = NSMakeRange(0,5);
id a = [NSMutableArray a];
[a addObject: r]; // but NSRange is not a NSObject *
Avec un booléen, j'utiliser le code comme ceci:
[a addObject: [NSNumber numberWithBool: YES]];
ou avec un nombre entier:
[a addObject: [NSNumber numberWithInteger: 3]];
Alors, quelle est la équivalent avec NSRange
? Ce que je ne veux pas vraiment faire est de créer ma propre sous-classe de NSObject
pour accomplir ceci. Sûrement il y a un moyen avec ce que Apple a déjà fourni?
Pourquoi NSValue pourrait stocker NSRange mais NSArray ne pourrait pas? – antonio081014
Parce que NSArray ne peut stocker que des objets. 'NSRange' n'est pas un objet, mais vous pouvez l'enrouler avec' NSValue' afin qu'il puisse être utilisé par 'NSArray',' NSDictionary' etc. –
lors de l'itération à travers un tableau NSMutable, NSRange r = a [i] .rangeValue donnant une erreur comme valeur de plage de propriété introuvable sur l'ID de type ... –