阅读更多
对于@property和@synthesize这两个指令,我们在开发的过程中司空见惯,这一篇我们来谈一谈@property的用法。如有错误和不足欢迎大家指正。
1.@property NSInteger minute 相当于这样两个方法:
1.-(void)setMinute:(NSInteger) newMinute;
2.-(NSInteger)minute;
说明@property只能用于声明文件中的@interface中。作用:为成员变量自动生成get和set方法的声明。
2.@synthesize minute 也相当于这样两个方法:
1.-(void)setMinute:(NSInteger) newMinute {minute = newMinute; NSLog(@"%02i",minute);}
2.-(NSInteger)minute {return minute;}
说明@synthesize只能用于实现文件中的@implementation中。作用:为成员变量自动生成get和set方法的实现。
3.@property可以做的三件事:
1.自动生成成员变量名字前的下划线。
2.自动声明成员变量的get和set方法。
3.自动实现成员变量的get和set方法。
4.OC的命名规则:
1.成员变量名前加下划线。
2.get和set方法中的名字去掉下划线。
5.@property的组合用法:
1.只要同种类型就可以写在一起,用逗号进行分隔。
例:@property int age,height;
6.@synthesize的组合用法:(@synthesize所接的是property类型的变量)
1.不区分数据类型,只要被@property所修饰,便可放在一起。
例:@synthesize name,age;
7.@property的增强用法:
1.当用户重写了set方法时,@property会生成get方法以及带下划线的成员变量。
2.当用户重写了get方法时,@property会生成set方法以及带下划线的成员变量。
3.当用户重写了get和set方法时,@property就什么都不生成了。
4.使用@property时建议一个成员变量写一行。
8.@property的本质:
@property是由实例变量和get以及set方法共同组成。所以我们在每次定义一个成员变量时,首先在成员变量列表中添加一个成员变量的描述,之后在方法列表中添加get和set方法的描述,最后在属性列表中添加一个属性的描述。