OC_属性
2015-07-18 15:02
253 查看
// 属性
// 属性一共做了三件事
// 1.声明了设置器setter和访问器getter
// 2.实现了设置器和访问器
// 3.声明一个成员变量,成员变量命名会在属性名的前面加一个_
// 具体的数据存储,还是成员变量来完成,属性只不过帮助程序员完成一些琐碎的工作,简化代码
// 属性的属性
// 1.读写控制:readonly,readwrite
// readonly设置后,属性没有setter方法,若没写,则默认是readwrite
// setter和getter的作用是给设置器和访问器的方法重新起个名,注意:设置器在名的设置时要加 :
// 2.原子性控制
// 通过原子性atomic(默认)来监控事务在整个过程中有没有完成,但一般来讲我们就是对数据的简单赋值,一般这部分我们用非原子性nonatomic
// 3.语义设置
// copy, assign, retain
// retain一般是对象类型会用到,比如自己写的类,还有NSArry
// assign一般是NSInteger,CGFloat在栈区的变量会用到,不需要内存管理
// copy一般只有字符串会用
// 点语法
// 针对对象的属性,使用点语法来获取对象的内容,也可以进行设置
// 通过点语法,可以对属性进行操作,大量节省了代码
// 离=号最近的是setter方法,其余都是getter方法
// KVC (key - value - coding)
// 把属性名看成是KVC中的key键,把要修改的值看成value,然后通过KVC的方法,把值赋给指定的key
@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"]);
相关文章推荐
- C++单元测试入门指南-在eclipse上建立Google test
- 计算客第一场,初赛。
- hdu3308 线段树 区间合并
- 福利!15款优秀移动APP产品原型设计工具
- 搜狗输入法的分词算法
- (转)成员变量和局部变量有什么区别?
- 【算法学习笔记】75. 动态规划 棋盘型 期望计算 1390 畅畅的牙签盒(改)
- zendCoding
- 045.Primitive Transfer 函数的参数传递
- 046.Pointer Transfer 指针类型的参数传递
- OpenCV(C++接口)学习笔记1-图像读取、显示、保存
- 3527: [Zjoi2014]力
- CALayer(Transform)旋转后产生锯齿
- [LeetCode][Java] Search in Rotated Sorted Array II
- LeetCode 234 Palindrome Linked List
- 044.Function Declare 函数的声明
- C++ 11个注意要点
- About iw
- 043.Return Type 函数的返回值
- 矩阵维数