iOS开发之oc(七)--@property和@synthesize
@property和@synthesize
首先从翻译来看: @property(翻译为:性质)和@synthesize(合成),是不是很像属性(声明)和实现?
1. @property
用在@inteface中
用来自动生成setter和getter的声明
用@property int age;就可以代替下面的两行
- (void)setAge:(int)age; // setter - (int)age; // getter
2.@synthesize(只做了解)
用在@implementation中
用来自动生成setter和getter的实现
用@synthesize age = _age;就可以代替
- (int)age{ return _age; } - (void)setAge:(int)age{ _age = age; }
3. @synthesize的细节(只做了解)
-
@synthesize age = _age;
> setter和getter实现中会访问成员变量_age
> 如果成员变量_age不存在,就会自动生成一个@private的成员变量_age
-
@synthesize age;
>setter和getter实现中会访问成员变量age
>如果成员变量age不存在,就会自动生成一个@private的成员变量age
-
手动实现
>若手动实现了setter方法,编译器就只会自动生成getter方法
>若手动实现了getter方法,编译器就只会自动生成setter方法
>若同时手动实现了setter和getter方法,编译器就不会自动生成不存在的成员变量
4. @property新特性(哈哈,现在就用这个)
-
自从Xcode 4.x后,@property就独揽了@synthesize的功能。也就是说,@property可以同时生成setter和getter的声明和实现
-
默认情况下,setter和getter方法中的实现,会去访问下划线 _ 开头的成员变量
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。