didi / Hummer

一套移动端高性能高可用的动态化跨端开发框架
https://hummer.didi.cn/
Apache License 2.0
1.31k stars 178 forks source link

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

Closed zhouhuishine closed 1 year ago

zhouhuishine commented 1 year ago

描述

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

visibility属性设置成了false: image

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

Hummer version:

目前最新版本

复现步骤

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

预期结果

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

yFeii commented 1 year ago

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