黑马程序员——内存管理
来源:互联网 发布:java前端后端 编辑:程序博客网 时间:2024/05/17 11:59
1.alloc、new或copy来创建一个对象,那么你必须调用release或autorelease。换句话说,不是你创建的,就不用你去释放。(谁创建谁释放,对象所有权负责释放)
2.如果你在一个class的某个方法中alloc一个成员对象,且没有调用autorelease或及时releaase, 那么你需要在这个类的dealloc方法中调用release;如果调用 了autorelease,那么在dealloc方法中什么 都不需要做。
3.尽量用sel.xxx = xxx来对对象进行赋值操作,在对象不用的时候也可以用self.xxx = nil来对其释放
注意下面这个例子里,你无需保留新建的数值,因为数组会帮你保留。
NSMutableArray *array;
int i;
// …
for (i = 0; i < 10; i++)
{
NSNumber *n = [[NSNumber alloc] initWithInt: i];
[array addObject: n];
[n release];
}
本例中,在for循环里你需要给n发送一个-release消息,因为你需要始终在-alloc之后将n的数量保持为1。这么做的原因是当其通过-addObject:方法被添加至数组中时,数组已经将其保存起来。即使你释放了n,但是这个数字由于已经保存在数组里,所以不会被释放。
为了了解这些,假设你自己就是编写数组类的人。你不希望接收的对象未经你同意就消失,所以你会在对象传递进来时,对其发送一个-retain消息。如果他们被删除,你同时也要对应地发送一个-release消息。在你自己-dealloc时,你也要给你收到的所有对象发送一个-release。
0 0
- 黑马程序员——内存管理
- 黑马程序员——内存管理
- 黑马程序员——OC---内存管理
- 黑马程序员——OC内存管理
- 黑马程序员——内存管理
- 黑马程序员——OC内存管理
- 黑马程序员——内存管理
- 黑马程序员——内存管理
- 黑马程序员——【OC】内存管理
- 黑马程序员——OC内存管理
- 黑马程序员——OC内存管理
- 黑马程序员——OC内存管理
- 黑马程序员——OC内存管理
- 黑马程序员——[OC]内存管理
- 黑马程序员——内存管理
- 黑马程序员 — OC(内存管理)
- 黑马程序员—OC内存管理
- 黑马程序员—Objective-C内存管理
- 日经社説 20150225 恩恵だけでない資源・素材安
- Leetcode: N-Queens && N-Queens II
- 爆破吧~2015
- 总结之linux多线程
- apt-get 和 apt-cache 命令实例展示
- 黑马程序员——内存管理
- JAVA PriorityQueue应用实例
- Android字体度量(FontMetrics)
- java中PriorityQueue优先级队列使用方法
- 复习数据结构:排序算法(六)——堆排序
- 面试题:以下程序的输出结果是什么?
- 新的一年好好上班好好学习
- 【BZOJ 1052】 [HAOI2007]覆盖问题
- sudo apt-get update 更新出错