title: Does Objective-C have concepts of value/reference type like C#?
body: <p>According to the search on Google, looks like it doesn't officially have value/reference type. If it doesn't have, what's the counterparts? What's it called? Is it called 'Obj-C class and non Objc-C class' or 'static type and dynamic type'?</p>
  
  <p>However, to me, a NSString object in obj-c 'works' like a reference type in C#. It'll lead to a compiling error "statically allocated instance of Objective-C class ..." if to define it without '*'</p>
  
  <pre><code>NSString * pstr = [[[NSString alloc] init] autorelease];
  </code></pre>
  
  <p>Some native types, like NSInteger or C struct, which can be created without '*', can I say it 'works' like a value type in C#? </p>
  
  <pre><code>NSInteger i = 0;
  </code></pre>