views:

48

answers:

4

For some or other reason when I call the init method and try and set the property it never seems to work:

//This is where I am setting the value
Hotel *newHotel = [[Hotel alloc]initWithCoordinate: coordinate 
                   hotelId:[NSNumber numberWithInt:1234]];


//This is the implementation of the method I am calling
- (id)initWithCoordinate:(CLLocationCoordinate2D)c hotelId:(NSNumber *)hId
{
   self = [super init];
   coordinate = c;

   hotelId = hId; //When I access this property afterwards its always out of scope

   return self;
}

//This is the interface
@interface Hotel : NSObject <MKAnnotation>
{
  NSNumber *hotelId;
}

@property (nonatomic, retain) NSNumber *hotelId;

- (id)initWithCoordinate:(CLLocationCoordinate2D)c hotelId:(NSNumber *)hotelId;

@end
+1  A: 

Use:

self.hotelId = hId;

so that you use the property's setter.

Alex Reynolds
A: 

Your method descriptions in your interface and implementation don't match.

Brandon
They don't need too because the method is still getting called
TheLearner
+1  A: 

use

self.hotelId 

instead of hotelId... may be it is just showing out of scope... but the value has assigned properly

mihirpmehta
A: 

I changed the type to NSString in desperation and that worked. Please vote to close if you see fit but none of the suggestions worked.

TheLearner