对属性的理解

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访问方法里加入判读条件来过滤掉不合法的数据。



你可能感兴趣的:(对属性的理解)