3

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'.

ここでどこが間違っていますか?

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 に答える