黑马程序员技术交流社区

标题: @property和@synthesize总结 [打印本页]

作者: fanyafangxf    时间: 2015-11-1 22:32
标题: @property和@synthesize总结
本帖最后由 fanyafangxf 于 2015-11-1 22:43 编辑

1.@property的使用

写在声明文件中,相当于定义get、set方法声明

  1. @property int age;
  2. //相当于
  3. //-(void)setAge:(int)age;
  4. //-(int)age;
复制代码

2.@synthesize的使用

写在实现文件中相当于注释部分的代码

  1. @synthesize age;
  2. //-(void)setAge:(int)age{
  3. //    self->age=age;//@synthesize age会自动新建一个age实例变量
  4. //}
  5. //-(int)age{
  6. //    return self->age;
  7. //}
复制代码

@synthesize age=_age;//指定实例变量名,不会操作默认的变量

相当于:

  1. <font style="background-color:rgb(245, 250, 254)"><font face="Verdana, Arial, Helvetica, sans-serif"><font style="font-size: 12px">//-(void)setAge:(int)age{
  2. //    _age=age;
  3. //}
  4. //-(int)age{
  5. //    return _age;
  6. //}</font></font></font>
复制代码

xcode4.4之后,可以只使用@property而不使用@systhesize,并且不用定义带有下划线的变量

操作的是带有下划线的事例变量,如果当前类没有下划线的事例变量,则系统会帮我们生成。注意该变量是私有的(相对的,隐藏的)子类看不到

@property的增强型,在.m文件中重写get、set方法,但是不能同时重写,只能重写一个





作者: 遇yuan77    时间: 2015-11-2 22:31
很厉害的样子
作者: yanggangcl    时间: 2015-11-3 16:16
不错不错~~~~~~
作者: 许本亮    时间: 2015-11-3 17:27
总结很到位~~~~




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2