关于 block 中的 Weak/Strong Dance 的问题

好多项目中带有 block 的代码都使用一些宏定义,比如 @weakify(self): A more elegant solution to weakSelf in Objective-C ,而个别 block 其实是不需要使用 weakSelf 的,这些 block 的拥有者并没被  self  在其生存周期始终强引用着,所以没必要用 weakSelf。反而在少数极端情况下(例如异步延时执行 block)因为捕获的是 weakSelf,而在 block 执行前 self 已经是  nil 。此时不要指望 block 中的 strongSelf 会帮到什么忙,因为它力所能及的只是在 block 执行过程中保证对 weakSelf 的强引用。如若 weakSelf 不再指向  self  而是  nil ,block 中的内容肯定不会正常执行(这不代表一定会 crash,向  nil  发送消息会执行默认的行为)。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值