解决block循环引用的三种方式

2020-03-10  本文已影响0人  帅帅的mum

1、 __weak 与__strong 组合 

 __weak typeof(self) weakself = self;

    self.BLOCK= ^{

        __strong typeof(weakself) strongself = weakself;

        NSLog(@"%@",strongself.name);

    };

2、--block与临时变量结合使用

__block OneViewController *vc = self;

    self.BLOCK= ^{

        NSLog(@"%@",vc.name);

        vc=nil;

    };

3、把self当作block的参数传递过去

self.BLOCK = ^(OneViewController *vc){

        NSLog(@"%@",vc.name);

    };

    self.BLOCK(self);

上一篇 下一篇

猜你喜欢

热点阅读