OC中的一些关键术语&&@property assign retain copy的区别
来源:互联网 发布:淘宝卖家设置红包3元 编辑:程序博客网 时间:2024/06/07 00:25
类:是一种结构,它表示对象的类型,对象引用类来获取和本身有关的各种信息,特别是运行什么代码来处理每种操作。
对象:是一种结构,它包含值和指向其类的隐藏指针。
实例:对象的另一种称呼。
消息:是对象可以执行的操作,用于通知对象去做什么。对象接收消息后,将查询对应的类,以便查找正确的代码来运行。
方法:是为响应消息而运行的代码,根据对象的类,消息可以调用不同的方法。
接口:是对象的类应该提供特殊的特性的描述。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
什么是property?
property是一种代码生成机制,能够生成不同类型的getter/setter函数,特别是如果你想要用点(.)操作符号来存取变量的话,你就能必须使用property。
如何使用?
用法如:@property (attribute1,attribute2) float value;
这些attribute包括:
readonly 表示这个属性是只读的,就是只生成getter方法,不会生成setter方法。
readwrite 可读可写(默认)设置可访问级别。
assign:简单赋值,不更改索引计数
copy:建立一个索引数为1的对象,然后释放旧对象
retain:释放(release)旧对象,将旧对象的值赋予输入对象,再提高输入对象的索引计数为1
nonatomic : nonatomic 非原子性访问,不加同步,多线程并发访问会提高性能。注意,如果不加此属性,
则默认是两个访问方法都为原子型事务访问(atomic)。
前两个只是简单的设定变量的可读写性。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
详细解释:
copy其实是建立了一个相同的对象,而retain不是:
比如一个NSString对象,地址为0x1111,内容为@"STR" ,copy到另外一个NSString之后,地址为0x2222,内容相同,新的对象retain为1,旧有对象没有变化。
retain 到另一个NSString之后,地址相同(建立一个指针,指针拷贝),内容当然相同,这个对象的retain值+1,也就是说,retain是指针拷贝,copy是内容拷贝。在拷贝之前,都会释放旧的对象。
assign:简单赋值,不更改索引计数(Reference Counting)。
copy:建立一个索引计数为1的对象,然后释放旧对象
retain:释放旧的对象,将旧对象的值赋予输入对象,再提高输入对象的输入对象的索引计数为1
使用assign:对基础数据类型(NSInteger)和C数据类型(int ,float,double,char等)
使用copy:对NSString
使用retain:对其他NSObject和其子类。
- OC中的一些关键术语&&@property assign retain copy的区别
- OC中的一些关键术语&&@property assign retain copy的区别
- @property中的retain,copy,assign区别
- IOS语法- @property里的assign,copy,retain区别
- IOS系列-@property里的assign,copy,retain区别
- retain\assign\copy的区别
- assign、retain、copy的区别
- retain copy assign 的区别
- @property (nonatomic,retain)中的nonatomic,assign,copy和retain是什么意思?
- @property (nonatomic,retain)中的nonatomic,assign,copy和retain是什么意思?
- OC-property-synthesize-nonatomic-atomic-assign-retain-copy
- OBJ-C中的retain,copy,assign的区别
- @property (assign,copy,retain)
- @property 之assign retain copy
- assign / retain / copy区别
- retain, copy, assign区别
- retain, copy, assign区别
- retain, copy, assign区别
- Android 5.0 Lollipop新的摄像头API
- (连载)边喝咖啡边学Unity——第二章 预备知识体系
- 算法--将字符串中*号移到左边,字母移到右边,保持字母相对顺序不变
- 集合框架篇3 List
- android Webservice 手机号归属地查询
- OC中的一些关键术语&&@property assign retain copy的区别
- ImageView
- 第十三周项目六:文件体验操作(实战2)
- Android核心基础——Day11_1
- myeclipse 上安装 Maven3
- 快递单号自动识别
- vs2012+qt5.2.0环境搭建
- Java面试题
- SAP RFC 浅谈基于SAP系统的远程功能调用