Могут ли свойства Objective C иметь параметры при доступе к ним? - PullRequest
1 голос
/ 10 июня 2011

Например, я видел self.someProperty, но никогда не видел self.someProperty(someParameter).

Это немного неясно.

Скажем, у меня есть свойство pinImage- ну, я думаю, было бы здорово сделать что-то вроде:

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

Однако это просто невозможно, не так ли?

Свойство в Objective-C всегда находится вформа theObject.property.У него никогда нет параметров.

Я знаю, что @property означает, что вы создаете методы setProperty и property.Это означает, что setProperty ВСЕГДА будет иметь один параметр, а self.property всегда не будет иметь параметров.

Я просто пытаюсь убедиться.

1 Ответ

4 голосов
/ 10 июня 2011

Вы должны понимать, что такое недвижимость на самом деле.Предположим, вы объявляете свойство следующим образом:

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

Когда вы синтезируете его (@synthesize someLabel;), вы фактически создаете метод, хотя он и скрыт, который выглядит примерно так:

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

Так что да, параметр есть, но он скрыт.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...