title: Why NSNumber literals cannot be used in static declarations
body: <p>I'm declaring:</p>
  
  <pre><code>static NSString *a = @"a";
  </code></pre>
  
  <p>and this is a correct declaration in iOS6 (it should be more correct to use the compiler version but I do not know it at the moment). I thought that with number literals also:</p>
  
  <pre><code>static NSNumber *b=@1;
  </code></pre>
  
  <p>could be a valid declaration. Compiler tells me that <code>initializer element is not a compile time constant</code>. This surprises me a bit. Since <code>NSNumber</code> is immutable as <code>NSString</code> and since I'm using a literal as in string case, I thought it could be valid as well. </p>
  
  <p>Does anybody have a reasonable explanation about this difference?</p>