Пользовательский геттер/сеттер BOOL в Objective-C

В моем приложении для iPhone у меня есть BOOL с именем isAddressCell. Это отлично работает, и я могу назвать это без проблем:

[cell setIsAddressCell:YES];

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

Все, что я хочу сделать, это когда вызывается setIsAddressCell, в зависимости от значения будут происходить определенные другие действия.

Текущий, нефункциональный метод установки:

@property (nonatomic, assign, setter = setIsAddressCell:) BOOL isAddressCell;

-(void)setIsAddressCell:(BOOL)addressCell
{
    if (addressCell)
    {
        //Do stuff...
    }
    else
    {
        //Do different stuff...
    }
}

person Josh Kahane    schedule 29.11.2012    source источник
comment
Обратите внимание, что setter = setIsAddressCell: является избыточным (поскольку автоматически сгенерированный сеттер также является setIsAddressCell:)   -  person Alladinian    schedule 29.11.2012
comment
Итак, если я не хочу менять имя метода, я могу добавить свой метод, не добавляя установщик к свойству?   -  person Josh Kahane    schedule 29.11.2012
comment
Да, вы просто переопределяете метод по умолчанию, как и любой другой метод.   -  person Alladinian    schedule 29.11.2012


Ответы (1)


Я был манекеном. Скажите, если я все еще делаю это неправильно, но у меня должно быть так:

-(void)setIsAddressCell:(BOOL)addressCell
{
    if (addressCell)
    {
        //Do stuff...
    }
    else
    {
        //Do different stuff...
    }

    isAddressCell = addressCell;
}

isAddressCell = addressCell;

Этот бит является ключевым, я по глупости не установил значение в конце моего метода ручной установки. Дох.

person Josh Kahane    schedule 29.11.2012
comment
Да, конечно. Я собирался спросить, что именно вы делаете в //Делаете вещи... и //Делаете разные вещи... и как вы собираетесь на самом деле установить свойство в методе установки. В конце концов, установка значения свойства — это то, что представляет собой сеттер. :) - person Hermann Klecker; 29.11.2012