Разрешены ли перечисления в качестве ключей для NSMutableDictionary?
Когда я пытаюсь добавить в словарь через:
[self.allControllers setObject:aController forKey:myKeyType];
Я получаю сообщение об ошибке:
ошибка: несовместимый тип для аргумента 2 из 'setObject: forKey:'
Как правило, я использую NSString как мое ключевое имя, которое не требует отбрасывания к "id", но чтобы ошибка исчезла, я сделал это. Является ли литье правильное поведение здесь или перечислены как ключи плохая идея?
Мое перечисление определяется как:
typedef enum tagMyKeyType
{
firstItemType = 1,
secondItemType = 2
} MyKeyType;
И словарь определяется и правильно распределяется как таковой:
NSMutableDictionary *allControllers;
allControllers = [[NSMutableDictionary alloc] init];