OC开发之——@property和@synthesize(26)
一 概述
- @property 可以在类.h文件中自动生成某个成员变量的setter和getter的声明
- @synthesize 可以在类.m文件中自动生成某个成员变量的setter和getter的实现
- @property 和@synthesize是xcode为了简化类的书写,而出现的新特性
二 作用演示
2.1 Person.h头文件定义(@property)
1 | #import <Foundation/Foundation.h> |
2.2 Person.m文件定义(@synthesize)
1 | #import "Person.h" |
2.3 main.m入口文件调用
1 | Person *person=[Person new]; |
2.4 总结
2.4.1 @property
用在@interface中
用来自动生成setter和getter的声明
用@property int age;就可以替代下面的两行
1
2-(void)setAge:(int)age;//setter
-(int)age; //getter
2.4.2 @synthesize
用在@implementation中
用来自动生成setter和getter的实现
用@synthesize age=_age;就可以代替
1
2-(void)setAge{_age=age;};
-(int)age{return _age};
三 省略成员变量的写法
3.1 声明与实现
1 | //声明 |
3.2 方法调用
1 | Car *car=[Car new]; |
3.3 说明
- 实现中
@synthesize speed=_speed;
会访问_speed这个成员变量,如果不存在,就会自动生成@private类型的_speed变量
四 @property替代@property和@synthesize的用法
4.1 代码(Dog.h,不修改Dog.m文件)
1 | #import <Foundation/Foundation.h> |
4.2 文件调用(正常输出)
1 | Dog *dog=[Dog new]; |