Я понимаю ключевые различия/процесс. Свойство создает геттеры и сеттеры для переменной класса. Он также (теперь) синтезирует его с частной переменной с префиксом _
.
Большой.
Теперь я хочу, чтобы некоторые методы действовали как свойство. Итак, у меня есть подкласс UIView
, который имеет подпредставление UILabel
.
Я хочу создать два метода - (NSString *)text
и setText:(NSString *)text
, чтобы установить и получить текст UILabel.
Очевидно, что это ДЕЙСТВУЕТ как свойство (вы можете сделать [myCustomElement text]
и [myCustomElement setText:@"whatever"]
), поэтому я чувствую, что должен определить свойство, но какая от этого польза, если она вообще есть?
Мои геттеры и сеттеры будут выглядеть так:
- (NSString *)text {
return self.textLabel.text;
}
- (void)setText:(NSString *)text {
self.textLabel.text = text;
}
class_copyPropertyList
,class_getProperty
,protocol_copyPropertyList
,protocol_getProperty
,property_getName
,property_getAttributes
) таким образом, который не может быть реализован вручную сеттерами и геттерами. Конечно, как установщики/геттеры свойств, так и реализованные вручную установщики/геттеры все еще могут быть проанализированы черезclass_copyMethodList
. - person Nate Chandler   schedule 05.02.2013