警告: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];

});

});

};

处理Block中的self问题(Capturing 'self' strongly in this block is likely to lead to a retain cycle)的更多相关文章

  1. 在block函数中规避错误信息 "capturing self strongly in this block is likely to lead to a retain cycle”

    以形如 _fontValueChangedBlock = ^(){ [self.fontSmallButton addTarget:self action:@selector(btnFontSmall ...

  2. capturing self strongly in this block is likely to lead to a retain cycle

    一个用Block实例变量语法,当有一个参考的实例变量,常引起retain cycle. capturing self strongly in this block is likely to lead ...

  3. xcode arc 下使用 block警告 Capturing [an object] strongly in this block is likely to lead to a retain cycle” in ARC-enabled code

    xcode arc 下使用 block警告 Capturing [an object] strongly in this block is likely to lead to a retain cyc ...

  4. 决绝Capturing 'demo' strongly in this block is likely to lead to a retain cycle

    - (IBAction)onTest:(id)sender { BlockDemo *demo = [[BlockDemo alloc]init];  __weak typeof(BlockDemo) ...

  5. block中self关键字的使用-防止self 被retain一次

    在代码块中使用对象的成员时(成员变量是属性strong,MRC估计是retain时效果一样,使用方法时也一样): 警告: capturing self strongly in this block i ...

  6. [ios2]警告:Block的Retain Cycle的解决方法 【转】

    <span style="background-color: rgb(248, 248, 248); font-family: 'PT Sans', Geogia, Baskervil ...

  7. Block的Retain Cycle的解决方法

    一个使用Block语法的实例变量,在引用另一个实例变量的时候,经常会引起retain cycle.这个问题在使ASIHTTPRequest的block语法的时候会时不时的碰到.这个问题困扰了我这个小白 ...

  8. iOS 中block中使用了外部变量的分析

    例子1: ; void (^blk)(void) = ^(){ printf("in block %d[%p]\n", val, &val); //in block 10[ ...

  9. block中如何避免循环引用

    使用 weak–strong dance 技术 block 可以直接引用 self,但是要非常小心地在 block 中引用 self.因为在 block 引用 self,可能会导致循环引用.如下例所示 ...

随机推荐

  1. Linux学习 -- 启动管理

    1 CentOS 6.x启动管理 系统运行级别 运行级别命令 #runlevel   查看级别 #init 运行级别  改变级别 系统默认运行级别 配置文件 /etc/inittab id:3:ini ...

  2. APK反编译(Linux环境下)

    先下载dex2jar和jd-gui这两个软件,然后解压APK,把解压出来的classes.dex,放到dex2jar的根目录,然后命令行进入到dex2jar根目录,然后执行命令   ./dex2jar ...

  3. FragmentTabHost使用注意

    FragmentTabHost使用时每次切换回Fragment时,都会再走一遍onCreateView,解决办法是缓存View,具体如下 private View rootView;//缓存Fragm ...

  4. opencart配置税率

    1.System->Localisation->Geo Zones新增税收区域 2.System->Localisation->Taxes->Tax Rates新增税率 ...

  5. 开源内容管理系统Joomla正式发布3.5版本 基于PHP 7

    这也是首个完全支持 PHP 7 语言开发的 Joomla 版本 作为深受广大站长喜爱的 Joomla 开源内容管理系统(Content Management System, CMS)正式推出 3.5 ...

  6. AngularJS vs. jQuery,看看谁更胜一筹

    http://www.apjs.net/ http://docs.angularjs.cn/api/ng/function 本文由PHP100中文网编译,转载请看文末的转载要求,谢谢合作!除非特别声明 ...

  7. Python之路【第二篇】:Python基础(二)

    windows的换行符:\n\r linux的换行符:\n 文件的数据处理: r 以只读模式打开文件(默认模式)w 以只写模式打开文件a 以追加模式打开文件 r+b 以读写模式打开文件(以读/写方式打 ...

  8. HTTP 中 POST和GET的区别

    1.传送数据的方式不一样 get是将数据队列添加到URL中提交,用户可以看到(对URL反编码就行) post是将数据队列放到HTTP的报文的报头中提交,用户看不到所提交的数据: 2.服务器端获取变量的 ...

  9. angularJs中ngModel的坑

    angular中指令被用的最多的除了ng-repeat之外就非他莫属了吧,由于各种业务的需求,我们经常需要去写一些继承ngModel的指令,来满足各种奇葩需求,最多的莫过于表单的验证啦,另外你在封装一 ...

  10. 分析UIWindow

    转载自:http://www.cnblogs.com/YouXianMing/p/3811741.html The UIWindow class defines an object known as ...