美文网首页
iOS低版本上block内BOOL类型变量赋值

iOS低版本上block内BOOL类型变量赋值

作者: 学习无底 | 来源:发表于2017-11-29 14:24 被阅读442次

上周遇到一个bug反馈,说一个按钮的状态不对,没有选中,非常疑惑,测试中没有这个问题。为了还原这个问题,运行在相似的模拟器上,发现果然。源代码如下:

ZLLViewController *protocolVC = [[ZLLViewController alloc]init];
// self.param : @property (copy, nonatomic) NSString *signature;
// ZLLViewController : @property (nonatomic, assign) BOOL nameSigned;
       protocolVC.nameSigned = self.param.signature;
        weakSelf(wself);
        protocolVC.signedBlock = ^(UIImage *image, NSString *signBase64String) {
            wself.param.signature = signBase64String;
            wself.protocolButton.selected = signBase64String.length;
        };
        [self.navigationController pushViewController:protocolVC animated:YES];

signedBlock 调用且signBase64String不为nil时,
打印了self.protocolButton.selected 的值为NO,protocolVC.nameSigned的值为YES
改为:

wself.protocolButton.selected = signBase64String.length ? YES : NO;

self.protocolButton.selected 的值没有问题。在10.x,11.x的系统上没有发现这个问题,8.4版本上确认有这个问题。
经此判断,这应该是一个系统的bug,不过还是自己写代码不够严谨导致的。

iOS低版本上block内BOOL类型变量赋值 : 直接赋值YES or NO,不要把对象或者除BOOL外的基本数据类型赋值给BOOL类型变量。

PS:很尴尬的是,这个问题是在运行在iPad上时发现的,还没有相应的测试机,模拟器运行iPad时,大小折腾了我好久。教训深刻!

相关文章

  • iOS低版本上block内BOOL类型变量赋值

    上周遇到一个bug反馈,说一个按钮的状态不对,没有选中,非常疑惑,测试中没有这个问题。为了还原这个问题,运行在相似...

  • C#基础第六天

    1、变量类型 int double string char bool decimal 变量的使用规则:先声明再赋值...

  • go -变量默认值

    变量申明但是并未赋值,各类型变量的系统默认值: int 类型为 0bool 类型为 falsestring 字符串...

  • swift 4.0 仿淘宝网格与列表切换效果

    1//设置一个全局Bool类型的变量并赋值 var _isGrid:Bool = true//默认网格 2. 视图...

  • GO变量

    /*=声明变量=*/ /*(1)已知变量类型,不赋值,则显示默认值bool=>falseint=>0float64...

  • ruby入门

    ruby数据类型:Number、String、Bool、Array、Hash 赋值 ruby中的变量,不需要做类型...

  • 第二章 2.2.5 截获的自动变量

    上两节截获自动变量值与__block说明符,在Block中将值赋值给截获的外部基础类型的自动变量,就会产生编译错误...

  • oc心得

    1.Block里的引用类型不做赋值操作,是可以不用在变量前加__block的。 ex: NSMutableArra...

  • [iOS]Block系列探究六 - __block变量和对象

    之前的文章[iOS]Block系列探究二 - 捕获变量谈论过__block是如何处理基础类型的局部变量使block...

  • 6.布尔变量与分支语句

    bool布尔类型:只有两个值true和falsebool类型如果是个局部变量(在方法中的变量)时,需要赋值才能使用...

网友评论

      本文标题:iOS低版本上block内BOOL类型变量赋值

      本文链接:https://www.haomeiwen.com/subject/sxiubxtx.html