首页 > 代码库 > 关于iOS8上使用UITextView内存泄漏的一个坑:-[UITextView textInputView]: message sent to deallocated instance

关于iOS8上使用UITextView内存泄漏的一个坑:-[UITextView textInputView]: message sent to deallocated instance

问题:    

      第一次从一个页面跳转到编辑控制器没有什么问题,当返回后再次进入编辑控制器点击UITextView出现内存泄漏错误,通过僵尸断点发现错误:-[UITextView textInputView]: message sent to deallocated instance 0x159fc800,测试环境是真机(iPhone5,iOS8.4),我又试着在iOS10的系统上测试,发现并没有什么问题,可能iOS8和10的一些内存处理策略不一样。

解决方法:

      这个bug调试了很久,最后几经查阅资料,在论坛上发现原来是问题出在UITextView的Category里,虽然工程里没有使用到该Category,但Category里重写了dealloc方法,引起了内存的一些释放问题,注释了Category里的dealloc方法就行了。虽然解决了bug,但是我发现在工程里存在另一个UITextView的Category,该Category里也重写了dealloc方法,但是我并没有注释掉,该方法也不会执行,然而内存问题却解决了,一脸懵逼,不明白苹果对于Categary里重写系统方法是怎么处理的。

 

附截图:

技术分享 跳转到技术分享

技术分享技术分享

技术分享

技术分享

 

关于iOS8上使用UITextView内存泄漏的一个坑:-[UITextView textInputView]: message sent to deallocated instance