背景:

项目中使用了Facebook的FBRetainCycleDetector框架检测内存泄漏问题。

登录VC的view中放置了一个UITextField对象。

产品的要求是当进入登录界面的时候,让这个UITextField对象成为第一响应者弹起键盘。

所以我在登录VC的-viewDidLoad方法中调用了该UITextField对象becomeFirstResponse方法。

但是当我pop到上一个控制器的时候,FBRetainCycleDetector框架提醒我发生了内存泄漏,但是我查看了下登录VC的-dealloc方法是被调用了的,怎么会在它上面的UITextField对象没有被释放呢?

 

原因:

通过查看了苹果开发者论坛和github上面另一个内存检测的框架的讨论,初步鉴定为UITextField本身的内存泄漏,也就是在iOS系统中没有对它做好内存管理。

https://forums.developer.apple.com/thread/94323

https://github.com/Tencent/MLeaksFinder/issues/80

 

解决方式:

在-viewDidAppear方法中调用该UITextField对象becomeFirstResponse方法,就不会出现内存泄漏的问题了。

相关文章:

  • 2021-08-06
  • 2021-12-14
  • 2021-08-07
  • 2022-01-01
  • 2022-02-11
  • 2022-12-23
猜你喜欢
  • 2021-11-25
  • 2021-11-17
  • 2021-11-03
  • 2022-12-23
  • 2021-11-08
  • 2021-11-28
  • 2021-11-08
相关资源
相似解决方案