2012-06-01 2 views
0

Предположим, что у меня есть перечисление следующим образом:Создание перечисления из NSDictionary

typedef enum { 
    FooGoods = 0, 
    FooInsurance = 1, 
} FooCategory; 

И я его как собственность и Ивар в другом объекте

@property (nonatomic) FooCategory *category; 

Когда я создаю что другой объект, я заполнение значений из NSDictionary Так что я сделать что-то вроде этого:

[baz setCategory:[aDictionary objectForKey:@"Category"]]; 

Однако, поскольку мое перечисление не является указатель, я получаю сообщение об ошибке.

Делать это получить предупреждение, а также, «Несовместимые целое для преобразования указателя»:

[baz setCategory:[[aDictionary objectForKey:@"Category"] intValue]]; 

любым другим способом, что ошибка/предупреждение бесплатно?

+0

что является BaseClass из GIKioskCategory? –

+0

Извините, должен быть FooCategory –

ответ

2

Следующая не является правильным

@property (nonatomic) FooCategory *category; 

должен быть изменен на

@property (nonatomic) FooCategory category; 

Теперь это должно работать без предупреждений

baz.category = (FooCategory)[aDictionary objectForKey:@"Category"] intValue]; 
+0

Ahh да, сила привычки. Благодаря! Будет приниматься один раз, когда будет предел времени. –

+0

Добро пожаловать, это случается со мной тоже :) –

+1

Пожалуйста, не забудьте принять, так как мне нужно 8 очков до конца дней, чтобы выиграть значок: P –

Смежные вопросы