I’m working on several iOS projects where I think enumerated datatypes would be helpful to me. For example, I have a game where the player can walk in several directions. I could just define four constants with string values as kDirectionUp, kDirectionDown, etc.
I think an enumerated type would be better here. Is that correct? If so, how do I define an enum here so that I can later compare values? (As in, if(someValue == kDirectionUp){})
That sounds like the right thing to do.
It’s really simple to create enums in Objective-C using C-style type definitions. For example, in one of my header files, I have the following type definition:
You define an object of CFPosterViewType and set it to one of the values:
When comparing CFPosterViewType values, it’s as simple as doing the following:
Note that the commented out numbers in the enum above are implicit values. If you want to do something differently, say, define a bitmask, or anything else where you need the values to be different than the default, you’ll need to explicitly define them.