Reputation: 19507
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
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
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
Reputation: 2920
Your method descriptions in your interface and implementation don't match.
Upvotes: 0
Reputation: 96927
Use:
self.hotelId = hId;
so that you use the property's setter.
Upvotes: 1