title: Pointers, primitives, and properties in Objective-C classes
body: <p>I really need some clarification — I have a few questions and I'm all mixed up right now.</p>
  
  <p>Here is a simple class interface:</p>
  
  <pre><code>#import &lt;UIKit/UIKit.h&gt;
  
  @interface Car : NSObject{
      NSInteger carID;
      NSString *carName;
  }
  
  @property (nonatomic, assign) NSInteger carID;
  @property (nonatomic, copy) NSString * carName;
  @end
  </code></pre>
  
  <ol>
  <li>Why is <code>carID</code> not declared as a pointer?</li>
  <li>Why does it use "assign" for <code>carID</code> instead of "copy"?</li>
  <li>Why even declare class members as pointers in the first place? (In my main program, my Car object will be used as a pointer.)</li>
  </ol>