Comment stocker les valeurs de l'enum dans un NSMutableArray
Mon problème est que depuis un enum en objective-c qui est essentiellement une valeur int, je ne suis pas en mesure de le stocker dans un NSMutableArray
. Apparemment NSMutableArray
ne prendra pas de c-types de données comme un int.
Est-il de toute façon commune pour y parvenir ?
typedef enum
{
green,
blue,
red
} MyColors;
NSMutableArray *list = [[NSMutableArray alloc] initWithObjects:
green,
blue,
red,
nil];
//Get enum value back out
MyColors greenColor = [list objectAtIndex:0];
Vous devez vous connecter pour publier un commentaire.
Envelopper la valeur d'enum dans un NSNumber avant de le mettre dans le tableau:
Et de la récupérer comme ceci:
MyColors theGreenColor = [[list objectAtIndex:0] intValue];
Une réponse moderne pourrait ressembler à:
et:
Macatomy réponse est bonne. Mais au lieu de NSNumber je vous suggère d'utiliser NSValue. C'est son but dans la vie.
Vous pouvez envelopper vos valeurs enum dans un NSNumber objet:
Pour aller avec
NSNumber
devrait être le droit chemin normalement. Dans certains cas, il peut être utile de les utiliser commeNSString
donc, dans ce cas vous pouvez utiliser cette ligne de code: