簡體   English   中英

目標C:使用枚舉進行編譯器警告

[英]Objective C: Compiler warning with enum

myObject.h

typedef enum {
    GET,
    POST
} HTTPMethods;

然后在@interface定義中,一個屬性:

@property (nonatomic) HTTPMethods *httpMethod;

myClass.m ,我有myObject.h#import然后:

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

這似乎有效,但編譯器對我大喊:

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

我在哪里錯了?

枚舉是內置類型,而不是對象。 因此,您可能希望存儲整數值本身而不是指針。

@property (nonatomic, assign) HTTPMethods httpMethod;

錯誤消息中有一個很大的提示!

在C和Objective C中,枚舉是用戶定義的數據類型。 你已經編寫了HTTPMethods *,這意味着“指向枚舉的指針”,而你看起來只是想要一個枚舉。

所以將你的財產改為:

@property (nonatomic) HTTPMethods httpMethod;

有關更多信息,谷歌“C指針”,你會找到這樣的信息: http//pw1.netcom.com/~tjensen/ptr/pointers.htm

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM