Tencent / QMUI_iOS

QMUI iOS——致力于提高项目 UI 开发效率的解决方案
http://qmuiteam.com/ios
Other
7.05k stars 1.37k forks source link

新加的QMUIStringPrivate直接在启动的时候崩在NAAsset了 #1356

Closed darvintang closed 2 years ago

darvintang commented 2 years ago

复现在时间戳字符串格式化成NSDate对象的时候

darvintang commented 2 years ago

传入了一个超过字符串长度的index

darvintang commented 2 years ago

0 0x00000001074b3114 in __48+[QMUIStringPrivate(Safety) qmuisafety_NSString]

1 0x0000000182523c58 in getObjectValue ()

3 0x00000001825c22e0 in -[NSDateFormatter dateFromString:] ()

4 0x0000000103c730f0 in -[NSString(DasString) das_StringToDateWithFormat:] ()

darvintang commented 2 years ago

能不能不要再修改系统的方法的行为了?目前很多未知的BUG了,或者你们留一个配置开关吧,要不是对QMUIKit依赖太严重了我都想剔除了

darvintang commented 2 years ago

@MoLice 要不你弄个群吧,有问题直接丢群里,用issues太慢了

MoLice commented 2 years ago

重新更新一下 4.4.2 版本,当时有修改后重新发布。最新的 4.4.2,如果传入 index 为 string.length 时是不会触发 assert 的。

darvintang commented 2 years ago

和极光的SDK冲突崩溃了,不少地方是通过判断字符串是否为空来处理的,你这个返回@“”那逻辑就错了

MoLice commented 2 years ago

和极光的SDK冲突崩溃了,不少地方是通过判断字符串是否为空来处理的,你这个返回@“”那逻辑就错了

可以看系统的文档,系统就是返回 @"" 的,QMUI 一开始也是返回 nil,后来改为以系统为准。