首页 > 其他 > 详细

移除KVO的风险

时间:2019-03-07 20:29:51      阅读:155      评论:0      收藏:0      [点我收藏+]

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

技术分享图片

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

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

技术分享图片

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

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

 

移除KVO的风险

原文:https://www.cnblogs.com/QM80/p/10492047.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!