@property关键字的使用
2015-05-29 20:39
369 查看
1.作用:@property是用来快速生成属性和属性的getter,setter方法的
2.用法1.当类有声明属性时,可以用@property 生成属性的get,set方法
此时类的实现中实现get,set方法就得使用@syhthesize关键字
此处注意:关键字@systhesize会默认访问其后的成员变量
当@systhesize后面的成员变量在类中没有声明的时候,他会自动在类的实现中生成一个私有的成员量,名称和systhesize后面的成员变量一致
3.一般在声明成员变量时以下划线开头,但是systhesize生成的getset方法中是去访问他后面的成员变量,但是我们又不能把其后的变量名称加上下划线,因
为加上下划线,方法名就变成set _成员名了,所以我们用
@systhesize 数据类型 变量名1=变量名2
这样生产的方法名称就是变量名1,访问的成员变量就是变量名2,如果类没有声明成员变量名为变量2的,编译器也会自动生成一个私有的成员变量
4.但是在Xcode4.5以上就不再使用以上的方式了,property关键字就能完成成员变量和get,set方法的声明和实现了,而且生成对成员变量默认以
下划线开头的
5.只要没有手动编写get和set方法时,编译器默认会生成@systhesize关键字的,仅仅写了其中的一个,编译器也会生成另外的一个方法的
6.property的参数,atomic:代表给方法进行加锁,保证线程安全,是一种线程保护技术,防止写入未完成时,被另一个线程操作,导致数据不完整
nonatomic不会自动加锁,这样效率还是比较高的
2.用法1.当类有声明属性时,可以用@property 生成属性的get,set方法
@interface Student { int age; } @end //该句就相当于原始的get,set方法 @property int age;
此时类的实现中实现get,set方法就得使用@syhthesize关键字
@implementation Studen //代表了getset 方法的实现, @syhthesize age; @end
此处注意:关键字@systhesize会默认访问其后的成员变量
当@systhesize后面的成员变量在类中没有声明的时候,他会自动在类的实现中生成一个私有的成员量,名称和systhesize后面的成员变量一致
3.一般在声明成员变量时以下划线开头,但是systhesize生成的getset方法中是去访问他后面的成员变量,但是我们又不能把其后的变量名称加上下划线,因
为加上下划线,方法名就变成set _成员名了,所以我们用
@systhesize 数据类型 变量名1=变量名2
这样生产的方法名称就是变量名1,访问的成员变量就是变量名2,如果类没有声明成员变量名为变量2的,编译器也会自动生成一个私有的成员变量
4.但是在Xcode4.5以上就不再使用以上的方式了,property关键字就能完成成员变量和get,set方法的声明和实现了,而且生成对成员变量默认以
下划线开头的
@interface Student @property int age; @end
5.只要没有手动编写get和set方法时,编译器默认会生成@systhesize关键字的,仅仅写了其中的一个,编译器也会生成另外的一个方法的
6.property的参数,atomic:代表给方法进行加锁,保证线程安全,是一种线程保护技术,防止写入未完成时,被另一个线程操作,导致数据不完整
nonatomic不会自动加锁,这样效率还是比较高的
相关文章推荐
- Linux 内核定时器及使用方法
- RHEL6子接口及双网卡绑定配置
- Linux 信号机制(三)
- 关于linux中的动态连接
- Hadoop1.x源码分析一:Configuration 详解
- TOOLS STORE OPENCART 2.X 主题模板 ABC-0628
- TOOLS STORE OPENCART 2.X 主题模板 ABC-0628
- Android dvm的进程和Linux的进程, 应用程序的进程是否为同一个概念?
- (转)xshell无法在vim中复制黏贴
- 进程关系
- OpenCV - win7+vs2013(2012)+opencv3.0.0 环境配置
- MVC与三层架构区别
- JPEGOPTIM压缩优化
- Windows Shell 程序
- Linux信号、信号处理和信号处理函数
- hadoop,hbase,hive
- 【5. 监控调度处理模块】云跳板机服务系统设计及实现
- python27 in Centos6
- 开发者网站
- HBase初级问题解决