Weakself 与 Strongself
1、什么时候用weakself?
主要看block是否被self持有,并且有没有产生循环引用 ,倘若都没有就不需要用weakself
2、什么时候用strongself?
主要是防止block执行过程中 self提前被释放导致出现奇怪的逻辑甚至是crash
总结来说,解决循环引用问题主要有两个办法:
防止循环引用
第一个办法是「事前避免」,我们在会产生循环引用的地方使用 weak 弱引用,以避免产生循环引用。
第二个办法是「事后补救」,我们明确知道会存在循环引用,但是我们在合理的位置主动断开环中的一个引用,使得对象得以回收。