Getting total number of enum items

Viewed 13690

Is it possible to get the total number of items defined by an enum at runtime?

While it's pretty much the same question as this one, that question relates to C#, and as far as I can tell, the method provided there won't work in Objective-C.

2 Answers

Using preprocessors you can achieve this without the annoying 'hack' of adding an additional value to your enum

#define __YourEnums \
YourEnum_one, \
YourEnum_two, \
YourEnum_three, \
YourEnum_four, \
YourEnum_five, \
YourEnum_six,

typedef enum : NSInteger {
__YourEnums
}YourEnum;

#define YourEnum_count ({ \
NSInteger __YourEnumsArray[] = {__YourEnums}; \
sizeof(__YourEnumsArray)/sizeof(__YourEnumsArray[0]); \
})
Related