关于block的强弱引用问题

来源:互联网 发布:发现者行车记录仪淘宝 编辑:程序博客网 时间:2024/06/06 18:14

在网络请求中

如下代码:

代码一:


    [[PHNetWorkService shareInstance] netWorkUrl:_httpUrl DataSource:dic Block:^(BOOL isSuccess, NSString *msg,id result) {
        [self XXXXX];

self.xxx取不到数据。
}];

代码二:

__weak typeof(&*self) weakSelf = self;
    [[PHNetWorkService shareInstance] netWorkUrl:_httpUrl DataSource:dic Block:^(BOOL isSuccess, NSString *msg, id result) {
        __strong typeof(&*weakSelf) strongSelf = weakSelf;

[strongSelf XXXX];
strongSelf.xxxx有数据。
}];


用这个形式在block的回调方法里self不会被释放掉,如果直接食用self掉方法会,self会被释放了,取不到self 里面的东西了。推荐使用代码二。


0 0
原创粉丝点击