didi/Hummer

CSS中visibility属性设置false时,iOS会崩溃

zhouhuishine opened this issue · 1 comments

描述

我们项目中CSS属性会把visibility写成不规范的false,而不是‘hidden’。
iOS端运行时,直接把visibility的属性当做NSString来做值判断,结果导致类型不匹配,直接崩溃。

visibility属性设置成了false:
image

iOS中,HMStringToViewHidden:函数(HMConverter.m:739)传入的参数为NO,NSNumber类型,不是NSString类型,调用isEqualToSrtring:函数发生崩溃。
`

  • (BOOL)HMStringToViewHidden:(NSString *)string {
    if ([string isEqualToString:@"hidden"]) {
    return YES;
    }
    return NO;
    }
    `

Hummer version:

目前最新版本

复现步骤

  1. CSS中为visibility属性设置false
  2. 运行iOS版本

预期结果

希望能为所有的取值函数都加上类型判断进行保护,防止程序崩溃。
如下:
`

  • (BOOL)HMStringToViewHidden:(NSString *)string {
    if ([string isKindOfClass:[NSString class]] && [string isEqualToString:@"hidden"]) {
    return YES;
    }
    return NO;
    }
    `
yFeii commented

请参考使用 css 规范属性 ,规范设置属性,不符合规范导致的未定义行为,暂不处理