码迷,mamicode.com
首页 > 其他好文 > 详细

block的循环引用

时间:2017-04-24 17:19:59      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:size   nav   创建   强引用   写法   view   使用   font   type   

1、创建block用copy修饰,拷贝到堆上

2、之前一直用这种写法,但会碰到提前释放的状态

__weak typeof(self)wakeself = self;

3、就用弱指针指向self,在block内部对weakSelf产生一个强引用,就解决了提前释放的问题

@weakify(self);

@strongify(self);

例如:

__weak __typeof(self) weakSelf = self;
self.block = ^{
    __strong __typeof(weakSelf) strongSelf = weakSelf;
    [strongSelf doSomething1];
    [strongSelf doSomething2];     
}

或者

#define WEAKSELF __weak typeof(self)weakSelf =self

#define StrongSelf __strong typeof(weakSelf) strongSelf = weakSelf

使用:

 WEAKSELF;

        [_cell setBurstBlock:^(NSInteger leftTag) {

            StrongSelf;

            [strongSelf showNavigationView:[GoodsViewController new]];

        }];

 

 

 

block的循环引用

标签:size   nav   创建   强引用   写法   view   使用   font   type   

原文地址:http://www.cnblogs.com/liuting-1204/p/6757506.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!