title: Irregular retain counts of NSNumbers
body: <p>I am using <code>NSNumber</code>s throughout my app (non-ARC) using different syntaxes. Just to be a little more informed, I tried to see how <code>NSNumber</code>s are retained depending on their initialization syntaxes. So I did the following:</p>
  
  <pre><code>NSNumber* a = @1;
  NSNumber* b = [[NSNumber alloc] initWithInt:2];
  NSNumber* c = [NSNumber numberWithInt:3];
  
  NSLog(@"%d | %d | %d", a.retainCount, b.retainCount, c.retainCount);
  </code></pre>
  
  <p>This code fragment is executed with a button tap, and the output has perplexed me (repetitive taps) :</p>
  
  <pre><code>73 | 27 | 6
  78 | 159 | 22
  78 | 160 | 22
  78 | 161 | 22
  78 | 162 | 22
  78 | 163 | 22
  85 | 169 | 22
  85 | 170 | 22
  85 | 171 | 22
  85 | 172 | 22
  </code></pre>
  
  <p>Now this does not really have a purpose (at least not in my case), but I would like to know how these <code>NSNumber</code>s get to these retain counts.</p>