从NSDictionary创建枚举

时间:2012-06-01 22:35:30

标签: objective-c ios enums nsdictionary

假设我有一个枚举如下:

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

我将它作为属性和另一个对象中的ivar

@property (nonatomic) FooCategory *category;

当我创建其他对象时,我正在填充NSDictionary的值,所以我做了这样的事情:

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

但是因为我的枚举不是指针,所以我收到错误。

执行此操作也会收到警告“不兼容的整数到指针转换”:

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

任何其他错误/警告方式?

1 个答案:

答案 0 :(得分:2)

以下内容不正确

@property (nonatomic) FooCategory *category;

应改为

@property (nonatomic) FooCategory category;

现在这应该没有警告

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