views:

228

answers:

1

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.

+3  A: 

An enum is a plain-old-C type, therefore it provides no dynamic runtime information.

One alternative is to use the last element of an enum to indicate the count:

typedef enum {
    Red,
    Green,
    Blue,
    numColors
} Color;
Darren
Good for contiguous values, utterly fails for `typedef enum { Red=0xff0000, Green=0x00ff00, Blue=0x0000ff, numColors} Color;`.
Mark Rushakoff
Like Mark said, this will fail big time for his example, the alternative provided by Darren is perfect for my needs. Thanks.
joshbuhler