OC内存管理初级

来源:互联网 发布:企业数据集成 编辑:程序博客网 时间:2024/05/29 19:38

一.内存管理的方式:

1.MRC (Manual Reference Count) 手动引用计数

2.ARC (Auto Reference Count) 自动引用计数
3.垃圾回收

二.内存管理机制

引用计数:

OC采用引用计数机制管理内存,当一个新的引用指向对象时,引用计数器就递增;当去掉一个引用时,引用计数器就递减.当引用计数到零时,该对象就释放占有的资源.

影响引用计数的方法:

1.+alloc  开辟内存空间,让被开辟的内存空间的引⽤用计数变为1,这是由0到1的过程

2.-retain 引⽤用计数加1

3.-copy  把某⼀内存区域的内容拷⻉一份,拷贝到新的内存空间⾥,被拷贝区域的引用计数不变,新的内存区域的引用计数加1

1

4.-release  引用计数减1

5.-autorelease  未来的某一时刻引用计数减1

autorelease 会将声明为autorelease 的对象,也即在  @autoreleasepool{}的大括号中的对象  放入离它最近的自动释放池中,当自动释放池销毁时,会向池中的每一个对象发送一个release消息

- dealloc:

是继承自父类的方法,当引用计数为0时,由对象自动调用.我们可以在dealloc中打印一句话,验证对象引用计数是否降为0.例如:

- (void)dealloc
{
    NSLog(@"被销毁了");
    [super dealloc];
}

三.内存管理原则

引用计数的增加和减少相等,当引用计数降为0之后,不应该再使用这块空间

凡是使用了alloc ,retain或者copy让内存的引用计数减少了,就需要使用release或autorelease让内存的引用计数减少.在一段代码内,增加和减少的次数要相等.

0 0
原创粉丝点击