J'ai un enum
défini comme ceci:Impossible d'instancier NSNumber avec la syntaxe stnype @n lors de l'utilisation d'enum?
typedef enum dataTypes{
LOW,
MEDIUM,
HIGH,
MAX_DATA_TYPE
} dataTypeEnum;
Je voudrais pouvoir instancier un NSArray
de NSNumber
s comme ceci:
NSArray * numsToUse = @[@LOW, @MEDIUM];
Ce ne compile. Des idées? Dois-je aller avec le clunkier [NSNumber numberWithInt:]
pour chacun d'entre eux ou y a-t-il un moyen de contourner cela? (J'ai examiné et rejeté les déclarations #define
pour un certain nombre de raisons).
Vous devez utiliser 'typedef NS_ENUM (NSInteger, DataTypeEnum) {..}' pour définir votre ENUM. – orkoden
@orkoden Quelle est la différence et pourquoi NS_ENUM est-il préférable? – helloB
[Voir les Docs d'Apple] (https://developer.apple.com/library/ios/releasenotes/ObjectiveC/ModernizationObjC/AdoptingModernObjective-C/AdoptingModernObjective-C.html) tl: meilleure complétion du code, meilleur type d'information pour le compilateur, better Swift interop – orkoden