title: Invalid receiver type 'NSInteger' when setting NSInteger property
body: <p>I get an error "Invalid receiver type 'NSInteger'" on this line in my implementation of a simple class:</p>
  
  <pre><code>        self.price = p; // this line throws error
  </code></pre>
  
  <p>Should I be specifying price as <code>copy</code>?  More details:</p>
  
  <p>header file:</p>
  
  <pre><code>@interface SafeItem : NSObject {
      NSString *name;
      NSInteger price;
      NSString *category;
      NSInteger itemid;
      BOOL hasImage;
  }
  
  @property (nonatomic,copy) NSString *name;
  @property (nonatomic) NSInteger price;
  @property (nonatomic,copy) NSString *category;
  @property NSInteger itemid;
  @property BOOL hasImage;
  
  - (id)initWithName:(NSString*) n price:(NSInteger) p category:(NSString*) c; 
  
  @end
  </code></pre>
  
  <p>implementation:</p>
  
  <pre><code>@implementation SafeItem
  
  @synthesize name, price, category, itemid, hasImage;
  
  - (id)initWithName:(NSString*) n price:(NSInteger) p category:(NSString*) c {
      if(self=[super init]){
          self.itemid = [SafeItem getNextId];
          self.name = [n copy];
          self.price = p; // this line throws error
          self.category = [c copy];
      }
      return self;
  }
  </code></pre>