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

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

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

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

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

最新文章

  1. Linux中MySQL的基本操作
  2. 配置 nginx server 出现nginx: [emerg] "root" directive is duplicate in /etc/nginx/server/blogs.conf:7
  3. java script小结
  4. iOS开发之NSTimer使用初探
  5. ovs-agent流程
  6. Qt隐藏标题栏
  7. 深入浅出ES6(九):学习Babel和Broccoli,马上就用ES6
  8. Matlab中Rand()函数用法
  9. Linux 关于解压
  10. while循环学习之统计流量
  11. 【 js 基础 】关于this
  12. Kubernetes系列之Helm介绍篇
  13. 微信小程序开发-窗体设置
  14. FPGA Asynchronous FIFO设计思路
  15. #WEB安全基础:HTML/CSS | 0x0 我的第一个网页
  16. TensorFlow 运行模型--会话(Session)
  17. System.Data.SqlClient.SqlException:“对象名 'customer' 无效。"
  18. 缩点+染色+DFS codeforce467D
  19. 精美的HTML5/CSS3表单 带小图标
  20. PHP学习心得1

热门文章

  1. FOJ 2232 匈牙利算法找二分图最大匹配
  2. 如何拯救一台glibc被干掉的Linux服务器
  3. 算法(Algorithms)第4版 练习 2.2.11(1)
  4. 针对PHP性能方面编程技巧的总结
  5. MS-SQL charindex的用法
  6. 四分位数及matlab实现
  7. mysql delete数据时报Error Code 1175
  8. C++(六)— 输入方式
  9. kylin_学习_01_kylin安装部署
  10. 备忘录One