我想声明一个自定义枚举,例如:
enum menuItemType
{
LinkInternal = 0,
LinkExternal = 1,
Image = 2,
Movie = 3,
MapQuery = 4
}
作为我的对象的类型:
@interface MenuItem : NSObject {
NSMutableString *menuId;
NSMutableString *title;
enum menuItemType *menuType;
NSMutableArray *subMenuItems;
}
但是我不确定我需要把枚举定义放在哪里——如果我把它放在@interface 之前它的语法不正确
最佳答案
只是更新这个,以防有人在我们 future 的时代偶然发现这个。
自 iOS 6
/Mac OS X 10.8
以来,新的 NS_ENUM
和 NS_OPTIONS
宏是首选方式声明枚举类型。
在那种情况下,它看起来像:
typedef NS_ENUM(NSInteger, MenuItemType) {
LinkInternal = 0,
LinkExternal = 1,
Image = 2,
Movie = 3,
MapQuery = 4
};
@interface MenuItem : NSObject {
NSMutableString *menuId;
NSMutableString *title;
MenuItemType menuType;
NSMutableArray *subMenuItems;
}
有关该主题的好读物:http://nshipster.com/ns_enum-ns_options/
您可能还想遵守 Apple 的枚举命名约定,并采用类似的方式:
typedef NS_ENUM(NSInteger, MenuItemType) {
MenuItemTypeLinkInternal = 0,
MenuItemTypeLinkExternal = 1,
MenuItemTypeImage = 2,
MenuItemTypeMovie = 3,
MenuItemTypeMapQuery = 4
};
希望这会有所帮助。
关于objective-c - 如何将类属性声明为枚举类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2116347/