刘 one punch的iOS开发日记 OC篇( @property及@synthesize的用法 )

  对于@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方法的描述,最后在属性列表中添加一个属性的描述。

猜你喜欢

转载自liuonepunch.iteye.com/blog/2407656