浅谈IOS ARC

碰到的问题

今天ios产品出现重复加载多个图片引起程序崩溃,后发现是资源未释放引发的内存泄露。这让我对ios垃圾回收机制产生了兴趣

ARC

网上看了资料发现ios采用的居然是引用计数法进行垃圾回收。印象中,这个算法是非常古老且不好的方法,因为他无法解决循环引用的问题,我觉得现在还在用的垃圾回收机制怎么也得是标记清理吧。哈哈哈。简单介绍一下,说白了就是所有构造出的对象,有被引用就+1,取消掉一个就-1。那优点显而易见,他可以直接的找出“已死的对象”,即引用计数为0的对象,这是其他垃圾回收算法需要付出更多代价才能辨别的。

retain release dealloc

retainCount是用来记录对象被引用次数的变量。
而retain release dealloc这些方法是用来维护retainCount的,这些方法会在代码编译中自动加入,而不需要开发者手动书写

我手边也没有ios的开发环境,我在想如果要解决ios循环引用无法被回收的问题,应该引入适当的代码规范,比如有循环引用的对象必须放置在外置对象如一个block中出现,然后通过重写dealloc方法将里面循环引用的对象各自再调用一次release方法,似乎就可以解决了。。。不知道有没有人这么干过

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值