ios之ARC内存管理(一)

引用计数(retainCount):数值表示对象有几个人在使用它;

对象被创建时alloc 引用计数加1,

当发送retain消息时,引用计数加1;

当release消息时,减1;

当对象的引用计数为0时,系统自动调用dealloc方法销毁该对象;

 

对象所有权:计数器变化

创建或复制某对象,没有创建而是保留对象使用,

copy,+1,  autorelease  ,-1 

 

-( void )dealloc{

[ super dealloc ];  //   子类的某些实例是继承父类的,需要释放父类拥有的这些对象

assign :直接赋直,默认,只是一个别名作用

retain  保留对象,两个对象指向同一个位置

copy   拷贝对象,开辟一个新内存空间,分别指向不同的内存位置

nonatomic 多线程环境下,不存在线程保护


自动释放池(Autorelease pool)是可以存放一些实体的集合,在自动释放池中的对象,是能够被自动释放的 nsobject 类提供了一个autorelease消息,当我们向一个对象发送autorelease消息时,这个对象就被放入了自动释放池,

当我们将一个对象发送了autorelease消息时,当自动释放池销毁时,会对池中的每个对象发送一个release消息,以此释放他们

(向对象发送autorelease消息,会到最后一起被release掉)


对象a retain对象b,对象b retain对象a,这时两个对象a和b都没有办法得到释放,这种情况我们称之为循环饮用

当使用new,alloc,copy,retain方法创建一个对象时,该对象的引用计数器为1。








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值