iOS奇怪的内存泄漏问题?

前两天写了个demo,今天用leaks工具跑了一下发现有内存泄漏:demo一运行,我还没进行任何操作就提示内存泄漏了,截图如下:

clipboard.png

让我想不通的是,我把AppDelegate.m中的设置window的这几行代码注释掉就没内存泄漏了:

clipboard.png

这里是demo地址:https://github.com/CaiWanFeng...

我用的Xcode9,希望有大佬可以帮我看下,万分感谢?

后面我新建了一个项目,只在AppDelegate.m中写那几句代码,依旧提示内存泄漏。

用的iPhone X模拟器,iOS 11

阅读 3.6k
1 个回答

1.在Appdelegate中手写window后, 如果不设置Main interface为空, 系统会先执行完didFinishLaunch后加载Main.storyboard这个Nib, 就是这个Nib就会导致就算不引入你写的CQKit也会造成内存泄漏的.
2.你在分类中添加了一个block的属性进行扩展, 而这个block每次都在进行栈copy到堆操作, 导致堆内存一直增加而没有对block进行释放.
3.对block进行copy后, 会强引用block中的对象, 循环引用.
4.对于对象动态添加block, 可以参考下BlocksKit

clipboard.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题