Как переопределить @synthesized getters?
как переопределить свойство синтезированного getter?
Ответы
Ответ 1
Внутри определения вашего свойства вы можете указать методы getter и setter следующим образом:
@property (nonatomic, retain, getter = getterMethodName, setter = setterMethodName) NSString *someString;
Вы можете указать только геттер, только сеттер или оба.
Ответ 2
Просто выполните этот метод вручную, например:
- (BOOL)myBoolProperty
{
// do something else
...
return myBoolProperty;
}
Затем компилятор не будет генерировать метод getter.
Ответ 3
Просто реализуйте свой собственный getter, и компилятор не будет генерировать его. То же самое касается установщика.
Например:
@property float value;
эквивалентно:
- (float)value;
- (void)setValue:(float)newValue;
Ответ 4
Я просто хочу добавить, я не смог переопределить свойство BOOL с помощью getter/setter, пока не добавлю следующее:
@synthesize myBoolProperty = _myBoolProperty;
поэтому полный код:
в файле заголовка:
@property BOOL myBoolProperty;
в файле реализации:
@synthesize myBoolProperty = _myBoolProperty;
-(void)setMyBoolProperty:(BOOL) myBoolPropertyNewValue
{
_myBoolProperty = myBoolPropertyNewValue;
}
-(BOOL) myBoolProperty
{
return _myBoolProperty;
}