编写高质量代码-OC 第3章 内存管理
2015-11-06 16:26
225 查看
17、理解内存和Objective-C内存管理规则
1、内存可看作是内存控制器与CPU之间的桥梁
2、Objective-C内存管理模式基于对象的“所有权”上
3、对象所有权策略是基于引用计数实现的,每一个对象有一个retaincount变量。
18、内存管理讲究“好借好还,再借不难”
1、在Objective-C中,释放对象应优先使用release而非autorelease,但在不适合立即回收对象的情况下,应优先使用release。
2、当返回一个新创建的(拥有的)对象时,应该使用autorealease而不是release来释放所有权。
3、对于拥有alloc返回的对象而言,失去释放所有权之前,应先失去对该对象的引用。
19、区别开alloc、init、retain、release和dealloc之间的差异
1、alloc是创建变量,dealloc是释放变量,retain是计数加1,release是计数减一
2、分配过程(alloc和init---)不仅进行对象的内存分配,还要对他的isa实力变量和保持数初始化
3、对象赋值时尽量采用autorelease而不是retain模式
20、优先选用存取方式来简化内存管理
21、对象销毁或者被移除一定考虑所有权的释放
22、明智而审慎地使用dealloc
1、内存可看作是内存控制器与CPU之间的桥梁
2、Objective-C内存管理模式基于对象的“所有权”上
3、对象所有权策略是基于引用计数实现的,每一个对象有一个retaincount变量。
18、内存管理讲究“好借好还,再借不难”
1、在Objective-C中,释放对象应优先使用release而非autorelease,但在不适合立即回收对象的情况下,应优先使用release。
2、当返回一个新创建的(拥有的)对象时,应该使用autorealease而不是release来释放所有权。
3、对于拥有alloc返回的对象而言,失去释放所有权之前,应先失去对该对象的引用。
19、区别开alloc、init、retain、release和dealloc之间的差异
1、alloc是创建变量,dealloc是释放变量,retain是计数加1,release是计数减一
2、分配过程(alloc和init---)不仅进行对象的内存分配,还要对他的isa实力变量和保持数初始化
3、对象赋值时尽量采用autorelease而不是retain模式
20、优先选用存取方式来简化内存管理
21、对象销毁或者被移除一定考虑所有权的释放
22、明智而审慎地使用dealloc
相关文章推荐
- spring-jmx.xml
- Spring、Bean的生命周期
- SpringMVC+MySQL出现编码问题解决思路
- 编写高质量代码-OC 第2章 数据类型、集合和控制语句
- Spring、Bean的生命周期
- spring-common.xml
- windows编程笔记
- eclipse无法删除集群上的数据
- Java用ScriptEngine解析脚本
- struts2拦截器 简单了解
- spring-webservice.xml
- java项目分层思想
- php 配置苦难
- java记——玩转阶乘
- libevent代码阅读(8)——“hello-world.c”之 创建监听器
- Google Chrome浏览器中如何使用命令
- 31天重构学习笔记(java版本)
- eclipse无法删除集群上的数据
- C++ 学习小程序之 map 的用法
- java 中使用JSON 进行数据的传递