• 处理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];

                });

            });

        };

  • 相关阅读:
    黑马程序员简易聊天器笔记
    黑马程序员 最简单的浏览器
    Java 窗体布局
    黑马程序员交通系统
    黑马程序员–java 网络处理
    Swing入门级项目全程实录学习总结
    Swing入门级项目全程实录第7讲
    Swing入门级项目全程实录第3讲
    Swing入门级项目全程实录第2讲
    HTML基础教程
  • 原文地址:https://www.cnblogs.com/yyt-hehe-yyt/p/4694088.html
Copyright © 2020-2023  润新知