基本概念:
@property是一个编译器指令,编译器指令就是用来告诉编译器要做什么
@property告诉编译器:声明属性的访问器(getter/setter);
用法:
@property 数据类型 方法名-------------例如@property int name;
在Xcode4.4之前,@property用来帮我们实现get/set方法的声明
@property使用方法的注意事项
1.@property只能书写在@interface........@end的对象的声明的方法中
2.目的就是代替get/set方法,并且@property后面的方法名为属性变量中属性参数去掉下划线之后的部分
@interface{
int _a;
}
@property int a;//实现了set和get方法的声明相当于:
-(void)setA:(int)a;
-(int)a;
@end
@property的增强使用(Xcode4.4之后)
1.在4.4之后,可以只是用@property,而不使用@synthesize
@property int age;//申明和实现了_age的get方法和set方法,并且如果对象属性中没有_age的话,
系统也会自动生成对象的该属性值。
.h文件中的@property int score;.m文件中如下实现:
- (void)setScore:(int) score{
_score = score;
}
-(int)score{
return _score;
}
相当于在.m的文件中自动生成了变量,并且不能被继承
.m文件:
#import ”Person.h“
int _score;//系统自动生成的,并且是私有的,不能被继承
2.增强型@property下重写get和set方法
由于set及get方法的是实现在被引用的时候,属性的值是没有经过校验的,所以需要重写set方法进行判断。
并且实现的时候get和set方法只能实现一个。如果需要都写的话,需要在.m文件中使用@synthesize关键字。
@property参数
总共三类,七个属性值。
|
|