第三章 Managing Mem With Arc 笔记
2016-04-18 19:39
253 查看
一,栈
当一个方法运行时,会在栈中分配内存,栈的管理符合先入后出的原则;
二,堆
对象的存储区域
三,ARC
ios的垃圾内存回收器
四,Object Ownership
函数的局部变量会增加引用计数;
对象的成员变量会增加引用计数
五,释放引用计数
让对象失去引用;
比如对象的引用指向另外一个对象或者引用指向nil;
引用本身被释放,或者对象从数组中移除;
六,弱引用和强引用
弱引用被用于解决强引用环的问题; 即是2个或2个以上对象互相引用对方,导致对象无法被释放内存
弱引用不会增加引用计数,在对象释放时,弱引用值会被设为nil;
ios提供了工具检测是否出现强引用环
七,property
创建对象的实例变量的便利方法;
创建属性后,编译器会自动创建带_的实例变量,并自动创建set和get方法
八,Property attributes
1,线程安全
nonatomic or atomic
2,Read/write attribute
3,内存管理相关
copy,拷贝了一份内存,原有的对象不会增加或者减少引用计数
unsafe_unretained,一般用于基本数据类型
九,自定义set/get方法
当set、get方法都被覆盖后,加_的实例变量也不会被创建
当一个方法运行时,会在栈中分配内存,栈的管理符合先入后出的原则;
二,堆
对象的存储区域
三,ARC
ios的垃圾内存回收器
四,Object Ownership
函数的局部变量会增加引用计数;
对象的成员变量会增加引用计数
五,释放引用计数
让对象失去引用;
比如对象的引用指向另外一个对象或者引用指向nil;
引用本身被释放,或者对象从数组中移除;
六,弱引用和强引用
弱引用被用于解决强引用环的问题; 即是2个或2个以上对象互相引用对方,导致对象无法被释放内存
弱引用不会增加引用计数,在对象释放时,弱引用值会被设为nil;
ios提供了工具检测是否出现强引用环
七,property
创建对象的实例变量的便利方法;
创建属性后,编译器会自动创建带_的实例变量,并自动创建set和get方法
八,Property attributes
1,线程安全
nonatomic or atomic
2,Read/write attribute
3,内存管理相关
copy,拷贝了一份内存,原有的对象不会增加或者减少引用计数
unsafe_unretained,一般用于基本数据类型
九,自定义set/get方法
当set、get方法都被覆盖后,加_的实例变量也不会被创建
相关文章推荐
- markdown语法备份
- 在secureCRT中解决hbase spark shell退格不能删除问题
- 关于浮点数和字面值常量 的使用—— 学习汇编的重要性
- 安卓开发环境的安装
- hdu 5650 so easy (异或)
- 枚举使用
- zoj3822(概率dp)
- hdu1716排列2(stl:next_permutation+优先队列)
- 第七周
- httpclient + AsyncTask 请求数据 || httpclient + handler 请求数据
- git和cocos2dx基本配置
- golang交叉编译
- XXX will not be managed by spring
- hailstone sequence
- 查询两个表(表1,表2)这两个表有相同的ID
- spring boot 使用
- MySQL设计规范
- YTU 2297: KMP模式匹配 三(串)
- 南京理工大学校外赛sequence
- python函数