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

以形如

       _fontValueChangedBlock = ^(){
            [self.fontSmallButton addTarget:self action:@selector(btnFontSmallClicked) forControlEvents:UIControlEventTouchUpInside];
        };

的代码为例,这个代码运行会报警告。"capturing self strongly in this block is likely to lead to a retain cycle”

要想消除这个警告,需要将代码改为如下形式:

        __weak typeof(self) weakSelf = self;

        _fontValueChangedBlock = ^(){
            typeof(weakSelf) __strong strongSelf = weakSelf;
            [strongSelf.fontSmallButton addTarget:strongSelf action:@selector(btnFontSmallClicked) forControlEvents:UIControlEventTouchUpInside];
        };

参考 http://stackoverflow.com/questions/16067712/avoiding-the-capturing-self-strongly-in-this-block-is-likely-to-lead-to-a-retai

时间: 2024-10-07 07:14:49

在block函数中规避错误信息 "capturing self strongly in this block is likely to lead to a retain cycle”的相关文章

PHP中的错误信息

PHP中的错误信息 php.ini中配置错误消息 在PHP4中,没有异常 Exception这个概念,只有 错误Error.我们可以通过修改php.ini 文件来配置用户端输出的错误信息. 在php.ini 中,一个分号 : 表示注释.Php.ini 将能够显示的错误类型分为如下种类.; E_ALL -所有的错误和警告,(不包含E_STRICT). ; E_ERROR -致命的运行时错误; E_RECOVERABLE_ERROR -可由异常处理机制所捕捉 (catch/handle) 的错误;

PHP编译过程中常见错误信息的解决方法

PHP编译过程中常见错误信息的解决方 checking for BZip2 support- yes checking for BZip2 in default path- not found configure: error: Please reinstall the BZip2 distribution Fix: yum install bzip2-devel checking for cURL support- yes checking if we should use cURL for

LAMP系列之PHP编译过程中常见错误信息的解决方法

LAMP系列之PHP编译过程中常见错误信息的解决方法 在CentOS编译PHP5的时候有时会遇到以下的一些错误信息,基本上都可以通过yum安装相应的库来解决.以下是具体的一些解决办法: ******************************************************************************* checking for BZip2 support- yes checking  for BZip2 in default path- not foun

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

转载至:http://stackoverflow.com/questions/17009966/capturing-self-strongly-in-this-block-is-likely-to-lead-to-a-retain-cycle 问题描述: 13down votefavorite 8 This question already has an answer here: capturing self strongly in this block is likely to lead to

决绝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) *weakDemo = demo;  [demo setExecuteFinished:^{ if (weakDemo.resultCode == 200) { NSLog(@"call back ok."); } }]; [demo executeTest]; } 决绝Capturin

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

一个使用Block语法的实例变量,在引用另一个实例变量的时候,经常会引起retain cycle. _items = [[NSMutableArray alloc] init]; _block = ^{ [_items addObject:@"Hello!"]; //_block引用了_items,导致retain cycle. }; 写成下面格式 __block ViewController *blockSelf = self; _block = ^{ [blockSelf->

PHP中对于错误信息的提示配置?

在你PHP的最上方写上 error_reporting(E_ALL); 就会显示错误信息了 1.Notice: Undefined variable: 变量名in注:使用了一个没有被定义的变量2.Parse error: syntax error, unexpected T_ELSE in If () {}Else if () {}Echo $test;Else {}注:是if else if else 句式错误3.Parse error: syntax error, unexpected $e

[转]Jquery中AJAX错误信息调试参考

下面是Jquery中AJAX参数详细列表: 参数名 类型 描述 url String (默认: 当前页地址) 发送请求的地址. type String (默认: "GET") 请求方式 ("POST" 或 "GET"), 默认为 "GET".注意:其它 HTTP 请求方法,如 PUT 和 DELETE 也可以使用,但仅部分浏览器支持. timeout Number 设置请求超时时间(毫秒).此设置将覆盖全局设置. async

探讨在项目中如何处理错误信息

一个项目中肯定需要处理各种各样的错误.而对于这些错误,一方面需要程序反应出这些错误并可以让程序员快速地 定位到,另一方面,在发生某些错误时需要给用户适当的错误提示.比如某个请求的方法是 public User getUserInfo(String userId) 此时请求参数userId为null,我在项目中会这么做 public User getUserInfo(String userId){ Assert.notNull(userId, "userId不能为空"); // .. }