3

myObject.h

typedef enum {
    GET,
    POST
} HTTPMethods;

然后在@interface定义内部,一个属性:

@property (nonatomic) HTTPMethods *httpMethod;

myClass.m中,我有#importofmyObject.h然后:

myObject *obj = [[myObject alloc] init];
obj.httpMethod = POST;

这似乎可行,但编译器对我大喊:

`Incompatible integer to pointer conversion assigning to 'HTTPMethods *' from 'int'.

我在哪里错了?

4

2 回答 2

7

枚举是内置类型,而不是对象。因此,您可能希望存储整数值本身而不是指针。

@property (nonatomic, assign) HTTPMethods httpMethod;
于 2012-08-27T02:41:50.267 回答
0

错误信息中有一个很大的提示!

在 C 和 Objective C 中,枚举是用户定义的数据类型。您已经编写了 HTTPMethods *,这意味着“指向枚举的指针”,而看起来您只是想要一个枚举。

因此,将您的属性更改为:

@property (nonatomic) HTTPMethods httpMethod;

更多信息,谷歌“C指针”,你会发现这样的信息:http: //pw1.netcom.com/~tjensen/ptr/pointers.htm

于 2014-07-23T05:31:13.077 回答