Как переопределить @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;
}