2012-11-29 69 views
0

在我的iPhone应用程序中,我有一个名为isAddressCell的BOOL。这很好,我可以这样称呼:Custom BOOL Getter/Setter?

[cell setIsAddressCell:YES]; 

没有问题。

但是,我已经环顾创建一个自定义setter方法,并没有创建一个运气,它看起来我的BOOL从未实际设置。我有我尝试过的setter方法代码失败。

所有我想要做的,当setIsAddressCell被调用,根据价值,某些其他行动将发生。真的很简单,希望你能帮上忙。

电流,非功能性的设置方法:

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

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

请注意,'setter = setIsAddressCell:'是多余的(因为自动生成的setter也是'setIsAddressCell:') – Alladinian

+0

因此,如果我不想更改方法名称,那么我可以添加我的方法,要将该setter添加到该属性? –

+1

是的,你只是重写像其他方法一样的默认方法。 – Alladinian

回答

1

我被一个虚设。告诉我们,如果我仍然这样做是错误的,但我应该有它这样的:

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

    isAddressCell = addressCell; 
} 

isAddressCell = addressCell;

这位是关键,我愚蠢地没有设置我的手动设置方法结束时的值。卫生署。

+0

当然可以。我很想问你在“//做什么......”和“//做不同的事情......”中做了什么,以及你如何在你的设定器方法中设定属性。最后,设置属性值是一个设置者的全部内容。 :) –