ios学习笔记之内存管理

一,内存管理类型定义
1,基本类型 任何C的类型,eg:
int,short,char,long,long long,struct,enum,union等属于基本类型或结构体
内存管理对于C语言的基本类型无效
2,OC类型(非基本类型)
任何继承于NSObject类的对象都属于OC类型
也就是除了C之外的其他类型

二,OC对象结构
所有OC对象都有着一个计数器,保留着当前对象被引用的数量,如果计数器为0,那么就真正的释放这个对象。

三,alloc retain release 函数
1, alloc函数是创建对象使用,创建完成后计数器为1(只用一次)
retain是对一个对象的计数器+1 (可以多次调用)
release是对一个对象计数器-1(减到0 对象就会从内存中释放)

2,oc类中实现了引用计数器,对象知道当前被引用的次数。
如果需要引用对象,可以给对象发送一个retain消息,这样对象计数器就+1;
当不需要引用对象了,可以给对象发送release消息,这样对象计数器就-1;
当计数器减到0,自动调用对象的dealloc函数,对象就会释放内存;
计数器为0的对象不能再使用release和其他方法。

四,自动释放池
自动释放池是OC的一种内存自动回收机制,可以将一些临时变量通过自动释放池来统一回收释放。
当自动释放池本身销毁的时候,池子里面所有的对象都会做一次release操作。
任何OC对象只要调用autorelease方法,就会把该对象放到离自己最近的自动释放池中(栈顶的释放池)。

五,不是用alloc,retain,copy创建的对象,不能使用release释放。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值