为之前项目添加一个功能用到了一个开源库XMTextView,然后运行报错提示:

移除KVO的风险

显示没有注册一个叫font的观察者,所以闪退。但是我的UITextView没有添加观察者呀,怎么会删除呢?

原来是由分类引起的,看下XMTextView中的分类:

移除KVO的风险

分类中交换了方法,那么所有的UITextView在释放时都要调用swizzleDealloc方法,而swizzleDealloc方法直接删除font观察,那么对于一个没有添加font的观察者的话就会crash。因此在移除时要么判断是否已经释放,要么捕捉异常不要让程序闪退,基于这个思路网上有多种解决方案:

https://www.jianshu.com/p/6c6f3a24b1ef

 

相关文章:

  • 2022-12-23
  • 2021-11-01
  • 2021-07-02
  • 2021-11-01
  • 2021-12-15
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-12-27
  • 2022-12-23
  • 2021-12-12
  • 2021-12-15
  • 2022-12-23
相关资源
相似解决方案