TheLearner
TheLearner

Reputation: 19507

Setting an NSNumber property out of scope

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

Upvotes: 0

Views: 174

Answers (4)

TheLearner
TheLearner

Reputation: 19507

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.

Upvotes: 0

Mihir Mehta
Mihir Mehta

Reputation: 13833

use

self.hotelId 

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

Upvotes: 1

Brandon
Brandon

Reputation: 2920

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

Upvotes: 0

Alex Reynolds
Alex Reynolds

Reputation: 96927

Use:

self.hotelId = hId;

so that you use the property's setter.

Upvotes: 1

Related Questions