title: Objective-C implicit conversion loses integer precision 'NSUInteger' (aka 'unsigned long') to 'int' warning
body: <p>I'm working through some exercises and have got a warning that states: </p>
  
  <blockquote>
    <p><em>Implicit conversion loses integer precision: 'NSUInteger' (aka 'unsigned long') to 'int'</em></p>
  </blockquote>
  
  <pre><code>#import &lt;Foundation/Foundation.h&gt;
  
  int main (int argc, const char * argv[])
  {
      @autoreleasepool {
  
          NSArray *myColors;
  
          int i;
          int count;
  
          myColors = @[@"Red", @"Green", @"Blue", @"Yellow"];
  
          count = myColors.count; //  &lt;&lt;&lt; issue warning here
  
          for (i = 0; i &lt; count; i++)
  
          NSLog (@"Element %i = %@", i, [myColors objectAtIndex: i]);
      }
  
      return 0;
  }
  </code></pre>
  
  <p><img src="https://i.stack.imgur.com/SvdgN.png" alt="Screenshot"></p>