oc 内存管理 -堆栈操作

14 篇文章 0 订阅

内存空间分为堆和栈

  • 对象的内存空间放在堆里,(动态产生)不可能随便回收。局部变量放在栈里,代码块运行完就回收了。
  • 每一个oc对象都有一个引用计数器(4个字节),放在对象里。表示引用的次数。

引用计数器的操作

  • 当使用alloc , new 或者 copy 创建一个对象时,新对象的引用计数器默认是1.
  • 当一个对象的引用计数器为0时,对象占用的内存就会被系统回收。
  • 给对象发送 retain消息就可以给计数器加一。(retain 方法返回对象。)
  • 给对象发送一个 release 消息,可以使引用计数器减一。
  • 可以给对象发送一个 retainCount消息获得当前的引用计数器数值。

对象的销毁

  • 当一个对象的引用计数器材数值为0时,那么它将销毁,其占用的内存被系统回收。
  • 当一个对象被销毁时,系统就自动向对象发送一条 dealloc消息
  • 一般会重写 dealloc 方法,在这里释放相关资源,dealloc 就像对象的遗言。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值