title: NS_ENUM vs enum
body: <p>Objective C provides several ways to declare an enumeration. It could be declared via <code>typedef enum</code> or <code>NS_ENUM</code>. <code>NS_ENUM</code> macro takes type name as a parameter, and I do not completely understand its meaning. I didn't find description of <code>NS_ENUM</code> macro in official Apple documentation. What's a difference between using <code>enum</code> and <code>NS_ENUM</code>? And an other question if it's possible to use any other type in <code>NS_ENUM</code> instead <code>NSInteger</code> and its relative integer types?</p>