由于某些或其他原因,当我调用init方法并尝试设置属性时,它似乎永远不会起作用:
//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
答案 0 :(得分:1)
使用:
self.hotelId = hId;
以便您使用该属性的setter。
答案 1 :(得分:1)
使用
self.hotelId
而不是hotelId
...可能只是显示超出范围...但值已正确分配
答案 2 :(得分:0)
您的界面和实现中的方法描述不匹配。
答案 3 :(得分:0)
我在绝望中将类型更改为NSString并且有效。如果你认为合适,请投票结束,但没有任何建议有效。