property 的成员属性
2015-10-26 21:17
162 查看
1、assign
范围:对基础数据类型(NSInteger 和 CGFloat) 和 C数据类型(int、float)
使用:简单赋值,不更改索引计数
2、copy(内容拷贝)
范围:对NSString、NSNumber
使用:拷贝对象,释放旧对象,开辟新的内存空间,并将索引计数设为1
深复制:copy的set方法,就是深复制
3、retain(指针拷贝)
范围:对其他NSObject 和 其他子类
使用:release旧值,再retain新值,索引计数+1
浅复制:retain的set方法,就是浅复制
与copy区别:只是将索引计数+1,没有开辟新空间
copy与retain:
Copy其实是建立了一个相同的对象,而retain不是:
比如一个NSString对象,地址为0×1111,内容为@”STR”
Copy到另外一个NSString之后,地址为0×2222,内容相同,新的对象retain为1,旧有对象没有变化
retain到另外一个NSString之后,地址相同(建立一个指针,指针拷贝),内容当然相同,这个对象的retain值+1
也就是说,retain是指针拷贝,copy是内容拷贝。
范围:对基础数据类型(NSInteger 和 CGFloat) 和 C数据类型(int、float)
使用:简单赋值,不更改索引计数
2、copy(内容拷贝)
范围:对NSString、NSNumber
使用:拷贝对象,释放旧对象,开辟新的内存空间,并将索引计数设为1
深复制:copy的set方法,就是深复制
3、retain(指针拷贝)
范围:对其他NSObject 和 其他子类
使用:release旧值,再retain新值,索引计数+1
浅复制:retain的set方法,就是浅复制
与copy区别:只是将索引计数+1,没有开辟新空间
copy与retain:
Copy其实是建立了一个相同的对象,而retain不是:
比如一个NSString对象,地址为0×1111,内容为@”STR”
Copy到另外一个NSString之后,地址为0×2222,内容相同,新的对象retain为1,旧有对象没有变化
retain到另外一个NSString之后,地址相同(建立一个指针,指针拷贝),内容当然相同,这个对象的retain值+1
也就是说,retain是指针拷贝,copy是内容拷贝。
相关文章推荐
- MySQL中的integer 数据类型
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- MySQL 数据类型
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- PostgreSQL教程(四):数据类型详解
- Lua学习笔记之数据类型
- 实现Lua中数据类型的源码分享
- Lua数据类型介绍
- SQL 研究 相似的数据类型
- 详解SQLite中的数据类型
- PowerShell中使用GetType获取变量数据类型
- c# 数据类型占用的字节数介绍
- C#难点逐个击破(6):C#数据类型与.net framework数据类型
- C#、ASP.NET通用工具类IsWhat?(可以判断数字、身份证、数据类型等等)
- MySQL数据类型和常用字段属性总结