原文:block里的self、weakSelf、strongSelf

ARC下,关于block里面使用self weakSelf strongSelf,理解一直没有特别的透彻,今天花时间研究了一下,总结如下: 其实一共就涉及到两个问题: .是否循环引用了 .block里面的代码,不一定执行到哪行时,VC可能就释放了,self就为nil了,那么你到底想让代码在这种情况下如何执行。 其实到底用self weakSelf还是strongSelf,就是上面两个问题的排列组 ...

2016-05-26 18:46 1 2159 推荐指数:

查看详情

关于iOS Block当中为什么要用weakSelfstrongSelf的思考

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

Fri May 11 23:15:00 CST 2018 0 1471
ObjC的Block中使用weakSelf/strongSelf @weakify/@strongify

首先要说说什么时候使用weakSelfstrongSelf。 下面引用一篇博客《到底什么时候才需要在ObjC的Block中使用weakSelf/strongSelf》的内容: Objective C 的 Block 是一个很实用的语法,特别是与GCD结合使用,可以很方便地实现并发、异步任务 ...

Fri Feb 19 00:06:00 CST 2016 2 8105
weakSelfstrongSelf的区别和用处

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

Thu Jan 04 23:45:00 CST 2018 0 1262
iOS开发--_weak typeof(self) weakSelf = self

_weak typeof(self) weakSelf = self; (一)内存管理原则 1、默认strong,可选weak。strong下不管成员变量还是property,每次使用指针指向一个对象,等于自动调用retain(), 并对旧对象调用release(),所以设为nil等于 ...

Thu Apr 14 00:30:00 CST 2016 0 3423
__weak typeof(self)weakSelf = self;的解释和使用

typeof(self) 是获取到self的类型,这样定义出的weakSelf就是和self一个类型的, 加上__weak是建立一个若引用,整句就是给self定义了一个若引用性质的替身;这个一般用在使用block时会用到,因为block会copy它内部的变量,可能会造成引用循环,使用__weak ...

Wed Mar 29 17:57:00 CST 2017 0 2143
[iOS]dispatch_after()中selfweakself的使用

苹果对编译器在不断优化,GCD方法中的block基本都不需要使用weakself,并不会造成循环引用。 dispatch_after官方文档中对block部分的说明: 一:使用self 从ViewControllerA push ...

Fri Apr 02 04:53:00 CST 2021 0 337
什么时候在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