Вы должны создать некоторое явное отображение между перечислениями и строками. Один подход будет следующим:
#define ENTRY(x) [NSNumber numberWithInt:x], @#x
NSDictionary* dict = [NSDictionary dictionaryWithObjectsAndKeys:
ENTRY(enumOne),
ENTRY(enumTwo),
ENTRY(enumThree),
nil];
#undef ENTRY
NSNumber* index = [dict objectForKey:@"enumOne"]);
Обратите внимание, что это общий подход, если у вас есть перечислимые значения, которые равноудалены, вам не нужно хранить их числовое значение и вы можете использовать, например, NSArray
вместо.