您的位置:首页 > 其它

OC_属性

2015-07-18 15:02 253 查看
// 属性

@property NSString *name;


// 属性一共做了三件事

// 1.声明了设置器setter和访问器getter

// 2.实现了设置器和访问器

// 3.声明一个成员变量,成员变量命名会在属性名的前面加一个_

// 具体的数据存储,还是成员变量来完成,属性只不过帮助程序员完成一些琐碎的工作,简化代码

// 属性的属性

// 1.读写控制:readonly,readwrite

// readonly设置后,属性没有setter方法,若没写,则默认是readwrite

// setter和getter的作用是给设置器和访问器的方法重新起个名,注意:设置器在名的设置时要加 :

@property(readnoly)NSString *sex;
@property(setter = sex1:, getter = sex2)NSString *sex;


// 2.原子性控制

// 通过原子性atomic(默认)来监控事务在整个过程中有没有完成,但一般来讲我们就是对数据的简单赋值,一般这部分我们用非原子性nonatomic

@property(nonatomic)NSInteger age;


// 3.语义设置

// copy, assign, retain

// retain一般是对象类型会用到,比如自己写的类,还有NSArry

// assign一般是NSInteger,CGFloat在栈区的变量会用到,不需要内存管理

// copy一般只有字符串会用

@property(nonatomic, copy)NSString *color;
@property(nonatomic, assign)NSInteger age;
@property(nonatomic, retain)NSArray *arr;


// 点语法

// 针对对象的属性,使用点语法来获取对象的内容,也可以进行设置

stu.stuName = @"宋小宝";
NSLog(@"%@", stu.stuName);


// 通过点语法,可以对属性进行操作,大量节省了代码

// 离=号最近的是setter方法,其余都是getter方法

// KVC (key - value - coding)

// 把属性名看成是KVC中的key键,把要修改的值看成value,然后通过KVC的方法,把值赋给指定的key

[stu setValue:@"王二麻子" forKey:@"stuName"];
NSLog(@"%@", stu.stuName);
NSLog(@"%@", [stu valueForKey:@"stuName"]);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: