@synthesize关键字和@property关键字一样,都是编译器特性,让Xcode可以自动生成getter和setter的声明和实现
(一)@property 关键字
@property 关键字可以自动生成某个成员变量的setter和getter方法的声明
语法
@property NSString *str;
编译器遇到这一行,则自动扩展成下面两句:
- (void)setStr:(NSString *)str;
- (NSString *)str;
(二)@synthesize 关键字
@synthesize 关键字帮助生成成员变量的setter和getter方法的实现
语法
@synthesize str;
相当于下面的代码:
- (void)setStr:(NSString *)str
{
_str = str;
}
<span style="font-size:18px;">
- (NSString *)str
{
return str;</span>
<span style="font-size:18px;"> }</span>
@dynamic 关键字,告诉编译器,不自动生成setter和getter方法,避免编译期间产生警告,然后有开发人员自己实现存取方法,或者存取方法在运行时动态创建绑定