[英]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.