Заявленное свойство
Заявленное свойство обеспечивает синтаксическое сокращение для объявления методов доступа класса и, дополнительно, реализовывая их. Можно объявить свойство где угодно в списке объявления метода, который находится в интерфейсе класса, или в объявлении протокола или категории. Вы используете следующий синтаксис:
@property (<#attributes#>) <#type#> <#name#>; |
Вы начинаете объявление свойства с ключевого слова @property
. Можно тогда дополнительно обеспечить заключенный в скобки набор атрибутов свойства, определяющих семантику хранения и другие способы поведения свойства. (Обратитесь к документу, окончательно описывающему списки свойств для описаний этих атрибутов.)
Каждое объявление свойства заканчивается спецификацией типа и именем. Например:
@property(copy) NSString *title; |
Этот синтаксис эквивалентен объявлению следующих методов доступа:
- (NSString *)title; |
- (void)setTitle:(NSString *)newTitle; |
В дополнение к объявлению методов доступа можно дать компилятору команду синтезировать реализации их (или сообщать компилятору, что класс синтезирует их во время выполнения).
Вы используете @synthesize
оператор в реализации класса блокирует, чтобы сказать компилятору создавать реализации, соответствующие спецификацию, которую Вы дали в объявлении свойства.
@interface MyClass : NSObject |
{ |
NSString *title; |
} |
@property(copy) NSString *title; |
@end |
@implementation MyClass |
@synthesize title; |
@end |
Вы используете @dynamic
оператор, чтобы сказать компилятору подавлять предупреждение, если это не может счесть реализацию методов доступа указанной @property
объявление.
@implementation MyClass |
@dynamic title; |
@end |