Как переопределить @ синтезированные геттеры?



Как переопределить свойство синтезированного геттера?

638   4  

4 ответов:

внутри определения свойства можно указать методы getter и setter следующим образом:

@property (nonatomic, retain, getter = getterMethodName, setter = setterMethodName) NSString *someString;

вы можете указать только геттер, сеттер только, или обоих.

просто реализуйте метод вручную, например:

- (BOOL)myBoolProperty
{
    // do something else
    ...
    return myBoolProperty;
}

компилятор не будет генерировать метод getter.

просто реализовать свой геттер и компилятор не будет генерировать один. То же самое касается и сеттера.

например:

@property float value;

эквивалентно:

- (float)value;
- (void)setValue:(float)newValue;

Я просто хочу добавить, я не смог переопределить свойство BOOL с помощью getter / setter, пока не добавлю это:

@synthesize myBoolProperty = _myBoolProperty;

Итак, полный код :

в заголовочный файл :

@property  BOOL myBoolProperty;

в файле реализации :

@synthesize myBoolProperty = _myBoolProperty;


-(void)setMyBoolProperty:(BOOL) myBoolPropertyNewValue
{
    _myBoolProperty = myBoolPropertyNewValue;
}

-(BOOL) myBoolProperty
{
    return _myBoolProperty;
}

Comments

    Ничего не найдено.