码迷,mamicode.com
首页 > 移动开发 > 详细

iOS基础知识之属性及属性关键字

时间:2017-02-18 23:02:58      阅读:412      评论:0      收藏:0      [点我收藏+]

标签:变量   对象   不同的   没有   span   私有变量   nsstring   string   copy   

iOS属性及属性关键字


一、属性功能:
1.给现有的成员变量生成一对setter/getter方法。
2.如果没有声明成员变量,自动声明一个_属性名的私有变量(默认的成员变量是受保护的)。


二、属性关键字:
assign 默认(缺省)关键字,基本数据类型的赋值。
MRC:手动管理内存
retain 对象的属性声明,保存引用计数,如果别的对象使用当前对象,则该对象的计数器加1,即两个对象同时指向同一块内存。
copy 对象的属性声明,直接拷贝对象为一个新的副本,而被拷贝的对象的计数器不会加1,即两个对象分别指向不同的内存,只是内存中的数据相同。

 

ARC:自动管理内存
strong 强指针,增加一个对象的引用权限(引用计数加1)
weak 弱指针,不会增加对象的引用权限,不会影响对象是否释放。
strong和weak 应用在对象类型的属性里面
ARC下可以使用retain,copy。

 

线程相关
nonatomic 单线程的程序的属性声明,缺省关键字,单线程下使用,执行效率高。
atomic 多线程的程序的属性声明,并不建议使用atomic来处理线程安全,执行效率低。

 

属性读取权限的关键字
readwrite 生成getter和setter方法,缺省权限
readonly 只生成getter方法,即只能访问,不能赋值。


三、属性关键字的使用:

非对象类型 使用assign可省略
对象类型 使用retain/strong
NSString 使用copy/strong

 例如:

1 @property (nonatomic, assign) CGFloat duration;
2 @property (nonatomic, strong) GLProgram *program;
3 @property (nonatomic, copy) NSString *dirPath;

 

 

 

iOS基础知识之属性及属性关键字

标签:变量   对象   不同的   没有   span   私有变量   nsstring   string   copy   

原文地址:http://www.cnblogs.com/calence/p/6414298.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!