原文:ObjC的Block中使用weakSelf/strongSelf @weakify/@strongify

首先要说说什么时候使用weakSelf和strongSelf。 下面引用一篇博客 到底什么时候才需要在ObjC的Block中使用weakSelf strongSelf 的内容: Objective C 的Block是一个很实用的语法,特别是与GCD结合使用,可以很方便地实现并发 异步任务。但是,如果使用不当,Block 也会引起一些循环引用问题 retain cycle Block 会 retai ...

2016-02-18 16:06 2 8105 推荐指数:

查看详情

block里的self、weakSelfstrongSelf

ARC下,关于block里面使用self、weakSelfstrongSelf,理解一直没有特别的透彻,今天花时间研究了一下,总结如下: 其实一共就涉及到两个问题: 1.是否循环引用了 2.block里面的代码,不一定执行到哪行时,VC可能就释放 ...

Fri May 27 02:46:00 CST 2016 1 2159
关于iOS Block当中为什么要用weakSelfstrongSelf的思考

  场景:当你在某个界面请求网络数据的时候,用户不愿意等待点击了返回按钮,此时在Block当中用如下的方式使用weakSelf的话,有可能会奔溃(因为在并发编程的情况下,虽然在if判断的时候weakself不为空,但是不保证if语句里面的weakself不为空),所以为了安全 ...

Fri May 11 23:15:00 CST 2018 0 1471
@weakify 与 @strongify 实现原理

为了解决 Block 造成的循环引用,iOS 开发过程中常常使用 @weakify 与 @strongify 来解决这个问题。下面就来看下 @weakify 与 @strongify 的实现原理。 准备知识 宏参数(Arguments)的扩展 可变参数宏 宏定义中的重复副作用 宏定义里面 ...

Mon Mar 21 00:03:00 CST 2022 0 710
weakSelfstrongSelf的区别和用处

block会copy要在block中使用的实变量,而copy会是变量的retainCount + 1,如若在不注意很容易造成循环引用。而所谓的循环引用的本质就是,两个对象相互引用,从而造成对象不能正常的dealloc。所以解决的办法就是让引用的一方是weak的,这样就使得相互引用的闭环被打破,能够 ...

Thu Jan 04 23:45:00 CST 2018 0 1262
什么时候在block中不需要使用weakSelf

什么时候在block中不需要使用weakself 问题 我们知道,在使用block时为了避免循环引用,通常需要使用weakselfstrongself,例如: 那么什么时候在block里调用self,不需要使用weak self呢? 答:在block本身不被self持有,而被别的对象 ...

Fri Dec 02 17:53:00 CST 2016 0 1448
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM