NS_ENUM

The preferred way to do type enumerations is now with NS_ENUM. I've incorporated it into the header. I don't know all the benefits of using it, but the major one to me is that autocomplete only shows completions that match the target type and that LLDB prints the enumerated name rather than the integer value.

If you remove the #ifndef block, then this will only build on iOS SDK 6 or later. Enjoy!