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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于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的主要内容,如果未能解决你的问题,请参考以下文章

关于IOS内存泄漏

UITextView scrollEnabled = YES 在 iOS8 中设置 scrollEnabled = NO 后不起作用

Jvm内存泄漏

UITextView setText 不应该在 ios8 中跳到顶部

关于内存溢出和内存泄漏

关于内存屏蔽 和内存泄漏的解决