我有一个只读属性
@property (nonatomic, readonly) NSInteger keepalive;
使用getter方法
-(NSInteger)keepalive
{
return _keepalive / 1000;
}
错误 - 使用未声明的标识符
尝试在init
方法
- (instancetype)init
{
self = [super init];
if (self)
{
_keepalive = 25000;
}
return self;
}
错误 - 使用未声明的标识符
无法理解为什么以及使用getter获得只读属性的正确方法。
编辑:
我不想按照评论中的建议添加synthesize
,因为它不再需要了 - as stated here我在下面得到了正确的答案。
谢谢AndréSlotta!
答案 0 :(得分:1)
在您的情况下,您可以在实现文件中将该属性重新声明为readwrite:
·H:
@property (nonatomic, readonly) NSInteger keepalive;
的.m:
@property (nonatomic, readwrite) NSInteger keepalive;
这使您可以在实现中使用编译器生成的原子设置器和getter,但不会将setter暴露给世界其他地方。