iOS开发运用block时何时会导致内存泄露问题???

为什么block容易出现内存泄露,根本原因是存在对象间的循环引用问题(对象a强引用对象b,对象b强引用对象a)。接下来看看以下几种情况。
1.
这里写图片描述
结论:会出现内存泄露。这也最常见的block循环引用。
2.
这里写图片描述
结论:会出现内存泄露。
3.
这里写图片描述
结论:不会出现内存泄露。
分析:
注意此处的block 是局部的,不是全局属性。self对此block不存在强引用,所以不存在循环引用。
4.
这里写图片描述
结论:会出现内存泄露。
分析:这种情况可以和第3种情况做对比。这里把block做为了全局变量,故会出现循环引用。
5.
这里写图片描述
结论:不会出现内存泄露。
分析:类方法,没有构成对象相互引用。

总结:分析block是否存在内存泄露,关键还是分析是否存在对象间的相互强引用。
做项目有一点点心得体会,请大家多多请教。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值