码迷,mamicode.com
首页 > 其他好文 > 详细

黑马程序员----@property和@synsthesize的使用

时间:2015-03-12 23:50:14      阅读:854      评论:0      收藏:0      [点我收藏+]

标签:

一、@property和@synthesize的基本使用

  • @property :可以自动生成某个成员变量的setter和getter的声明(@property int age;)。写在@interface里面;

        技术分享

  • @synthesize :自动生成age的setter和getter,并且在方法内部访问的是_age这个成员变量(@synthesize age = _age; // 如果后面不写=_age默认就是访问age成员变量)。写在@implementation里面;

      技术分享

二、@property和@synthesize的细节

  • 自动生成相应的成员变量的setter和getter的声明

  • 如果没有明确的setter和getter的实现,会自动生成相应的成员变量的setter和getter的实现

  • 如果代码中手动实现了setter方法,编译器就会自动生成getter方法

  • 如果代码中手动实现了getter方法,编译器就会自动生成setter方法

  • 如果代码中同时实现了setter方法和getter方法,编译器就不会自动生成不存在的成员变量(带下划线)

三、@property和@synthesize的其他用法

       技术分享

四、说明:

      从Xcode4.4开始,@property  int  speed;既可以生成_speed的setter和getter的声明,还会自动生成_speed的setter和getter的实现,并且即使如果_speed没有在.h文件中的@interface中没有定义,也可以自动生成次成员变量,但是其类型是@private。

五、@synthesize  age = _age;@synthesize  age;的区别:

  • @synthesize  age = _age; 访问的是_age这个成员变量;

  • @synthesize  age; 默认访问的是age这个成员变量,如果没有这个成员变量,就会自动生成@private类型的age成员变量;

六、注意点:

  • 如果手动实现了setter编译器就只会自动生成getter

  • 如果手动实现了getter编译器就只会自动生成setter

  • 如果同时手动实现了settergetter编译器就不会自动生成不存在的成员变量(带下划线_)

 

 
 

黑马程序员----@property和@synsthesize的使用

标签:

原文地址:http://www.cnblogs.com/unique-ios/p/4333869.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!