0

假设我有一个枚举如下:

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

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

@property (nonatomic) FooCategory *category;

当我创建另一个对象时,我正在填充来自的值NSDictionary所以我做这样的事情:

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

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

这样做也会得到一个警告,“不兼容的整数到指针的转换”:

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

还有其他没有错误/警告的方式吗?

4

1 回答 1

2

以下不正确

@property (nonatomic) FooCategory *category;

应该改为

@property (nonatomic) FooCategory category;

现在这应该可以在没有警告的情况下工作

baz.category = (FooCategory)[aDictionary objectForKey:@"Category"] intValue];
于 2012-06-01T22:39:45.867 回答