《Objective-c》-(@property和@synsthesize)

 

一、@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编译器就不会自动生成不存在的成员变量(带下划线_)

 

 
 
 
 

转载于:https://www.cnblogs.com/unique-ios/p/4333869.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值