【问题标题】:Custom BOOL getter/setter in Objective-CObjective-C 中的自定义 BOOL getter/setter
【发布时间】:2012-11-17 09:37:39
【问题描述】:

在我的 iPhone 应用程序中,我有一个名为 isAddressCell 的 BOOL。这很好用,我可以毫无问题地调用它:

[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...
    }
}

【问题讨论】:

  • 注意setter = setIsAddressCell:是多余的(因为自动生成的setter也是setIsAddressCell:
  • 那么,如果我不想更改方法名称,那么我可以添加我的方法而无需将 setter 添加到属性中?
  • 是的,您只需像任何其他方法一样覆盖默认方法。

标签: iphone objective-c boolean setter getter


【解决方案1】:

我是个假人。告诉我是否仍然做错了,但我应该这样:

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

    isAddressCell = addressCell;
}

isAddressCell = addressCell;

那一点是关键,我愚蠢地没有在手动设置方法的末尾设置值。呵呵。

【讨论】:

  • 当然可以。我正要问你在“//Do stuff...”和“//Do different stuff...”中到底做了什么,以及你打算如何在你的 setter 方法中实际设置属性。最后设置属性值就是设置器的全部内容。 :)
猜你喜欢
  • 1970-01-01
  • 2023-03-12
  • 1970-01-01
  • 2012-09-09
  • 2017-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多