• 处理Block中的self问题(Capturing 'self' strongly in this block is likely to lead to a retain cycle)


    警告:ARC Retain Cycle

    Capturing 'self' strongly in this block is likely to lead to a retain cycle

    代码:

        self.refreshHeader.beginRefreshingBlock=^(){

            // 后台执行:

            dispatch_async(dispatch_get_global_queue(0, 0), ^{

                sleep(2);

                dispatch_async(dispatch_get_main_queue(), ^{

                    // 主线程刷新视图

                    weakSelf.total=20;

                    [self.mainTableView reloadData];

                    [self.refreshHeader endRefreshing];

                });

            });

        };

    针对这个问题,解决很简单,将self弱化即可。修改后代码如下:

        __weak MainViewController * weakSelf = self;

        

        self.refreshHeader.beginRefreshingBlock=^(){

            // 后台执行:

            dispatch_async(dispatch_get_global_queue(0, 0), ^{

                sleep(2);

                dispatch_async(dispatch_get_main_queue(), ^{

                    // 主线程刷新视图

                    weakSelf.total=20;

                    [weakSelf.mainTableView reloadData];

                    [weakSelf.refreshHeader endRefreshing];

                });

            });

        };

  • 相关阅读:
    svn笔记
    cakephpurl生成
    cakephp加载流程
    jquery validate使用方法
    我需要具备的知识和能力总结
    cakePHP国际化和本地化
    javascript片段收集
    ecmall一个典型的操作
    9. Technical Overview 技术概述
    42. Spring Security Dependencies春季安全依赖
  • 原文地址:https://www.cnblogs.com/yyt-hehe-yyt/p/4694088.html
Copyright © 2020-2023  润新知