iOS奇怪的内存泄漏问题?

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

clipboard.png

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

clipboard.png

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

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

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

用的iPhone X模拟器,iOS 11

回答:

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

以上是 iOS奇怪的内存泄漏问题? 的全部内容, 来源链接: utcz.com/p/186222.html

回到顶部