enum
s sont de pur C. Il n'y a pas d'informations d'exécution sur les chaînes d'étiquettes. Par conséquent, il est impossible de traduire une instance d'un NSString
en une valeur d'une étiquette d'énumération. La seule façon de le faire est d'avoir des cascades.
C'est une des raisons pour lesquelles je n'utilise pas les énumérations C, si c'est possible. Je définis simplement des chaînes pour l'étiquette et passe la chaîne elle-même comme argument, si la valeur enum est simplement un marqueur, une option. Si j'ai besoin d'une combinaison de valeurs (aka jeux de bits), j'utilise des instances de NSSet
avec des chaînes.
Si vous êtes intéressé par une valeur spécifique d'une énumération (au lieu d'avoir simplement 0, 1, 2, ...), vous pouvez utiliser des dictionnaires comme expliqué dans le lien dans le commentaire à votre Q.
'I veux obtenir blanc de @ "blanc" '<- ce n'est pas clair pour moi ce que vous voulez réaliser. –
Vous pouvez avoir des réponses sur https://stackoverflow.com/questions/925991/objective-c-nsstring-to-enum ou https://stackoverflow.com/questions/7083361/objective-c-convert-string-to- enum ou https://stackoverflow.com/questions/16844728/converting-from-string-to-enum-in-c –