oc属性总结:
首先搞清楚这几个问题:什么是属性?属性有什么用?为什么要用属性?
1、属性是oc的语法,使用如下:
@property (nonatomic, strong) UIButton *grayButton;
@synthesize grayButton = _grayButton;
2、属性的作用:合成实例的get set方法
@property生成设置器和访问器方法的声明等效于:
-(NSString *)name;
-(void)setName:(NSString *)name;
@synthesize 生成设置器和访问器方法的实现
等效于:
-(NSString *)name
{
return _name;
}
-(void)setName:(NSString *)newName
{
if(_name != newName)
{
[_name release];
[newName retain];
_name = newName;
}
}
注意:只有当访问器不存在的时候, @synthesize才会自动生成访问器(Xcode 4.5之后),所以,即使是使用 @synthesize声明了一个属性,你仍然可以实现自定义的getter和setter。
属性是设置实例变量的方法,也是获取实例变量的方法。
3、为什么要用属性
set和get就是用于设置和读取变量的方法。这样子外部程序就不会直接访问程序的变量,只能通过set去设置值,通过get去读取值。有利于对外封装。防止外部程序随意修改我们的变量。
set给属性赋值,同时可以在set访问方法里加入判读条件来过滤掉不合法的数据。