Objective C属性在访问它们时是否有参数?

时间:2011-06-10 01:59:38

标签: objective-c ios properties

例如,我见过self.someProperty,但我从未见过self.someProperty(someParameter)

这有点不清楚。

说我有一个属性pinImage - 好吧,我觉得做一些像以下的事情很酷:

self.image(@"SomeImage.png");

然而,这是不可能的,是吗?

Objective-C中的属性始终采用theObject.property的形式。它从来没有参数。

我知道@property表示您创建setPropertyproperty方法。这意味着setProperty将始终具有一个参数,self.property将始终没有参数。

我只想确保。

1 个答案:

答案 0 :(得分:4)

您需要了解房产实际是什么。假设你声明一个这样的属性:

@property(nonatomic,retain)IBOutlet UIButton *someLabel;

当你综合它(@synthesize someLabel;)时,你实际上是在创建一个方法,虽然它是隐藏的,看起来像这样:

-(void)setSomeLabel:(UILabel *)aSomeLabel {
    if (someLabel != aSomeLabel)
    {
        [someLabel release];
        someLabel = aSomeLabel;
        [someLabel retain];
    }
}

所以是的,有一个参数,但它是隐藏的。