在myObject.h
:
typedef enum {
GET,
POST
} HTTPMethods;
然后在@interface
定义中,一个属性:
@property (nonatomic) HTTPMethods *httpMethod;
在myClass.m
中,我有#import
myObject.h
,然后:
myObject *obj = [[myObject alloc] init];
obj.httpMethod = POST;
这似乎有效,但编译器对我大吼:
`Incompatible integer to pointer conversion assigning to 'HTTPMethods *' from 'int'.
我在哪里错了?
答案 0 :(得分:7)
枚举是内置类型,而不是对象。因此,您可能希望存储整数值本身而不是指针。
@property (nonatomic, assign) HTTPMethods httpMethod;
答案 1 :(得分:0)
错误信息中有一个很大的提示!
在C和Objective C中,枚举是用户定义的数据类型。你已经编写了HTTPMethods *,这意味着“指向枚举的指针”,而你看起来只是想要一个枚举。
所以将你的财产改为:
@property (nonatomic) HTTPMethods httpMethod;
有关详细信息,请点击“C指针”,您会找到以下信息:http://pw1.netcom.com/~tjensen/ptr/pointers.htm