Yaoyuan Guo
                                            Yaoyuan Guo
                                        
                                    setColor:range 这一刻只会改变 range 内的颜色。 但如果后续又进行 append 字符串,那就可能会附带上前面的属性了,这是 NSMutableAttributedString 的特性。
Fixed: https://github.com/ibireme/YYImage/commit/fa2fce9cb1762e6223eebc83424387528281c9a3
我只能找到与之类似的一个问题:https://github.com/facebook/react-native/issues/2001 看样子有可能与 ARC 下内存释放的竞态条件有关,也可能与 CoreText 内部逻辑有关。。 能问下这个崩溃频率和次数、系统版本吗?方便的话提供下相关使用代码、YYText 版本吧。
如果相关代码都是在主线程执行的,那看不出有什么问题。。看 rn 那个描述,可能与多线程情况或字体加载有关。 另外,推荐更新一下代码看看吧,1.0 之后都修改了一些 bug,没有其他变动:https://github.com/ibireme/YYText/releases
那这个问题很难定位了。。这是 CoreText 内部的崩溃,但传入参数也没问题,也是在主线程调用的不可能有线程安全问题。。 但我还是怀疑与多线程的什么东西有关,比如 Font 的调用、异步绘制、其他逻辑中的后台线程操作等等。。。
这个应该与重启应用无关啊。。每次重启后,会重新 set 数据吗? 试试设置一下 cache.diskCache.costLimit,或者手动调用 diskCache trimToXXX 方法看看。
可以先试试一个内部的方法 _dbCheckpoint。 另外我很奇怪没有写入的情况下为什么 wal 会增长,能提供一下可复现问题的代码或 demo 吗?
可能需要重新设置一下 selectedRange。
内部会有一个变量保存着请空前的属性,所以会出现那样的表现。 试试改一下 textView.typingAttributes。如果不行,那就只能设置一个新的 atteibutedText 来覆盖了。