我知道有关此主题的问题很多,但是在宣布重复之前,请先阅读我的问题,谢谢。
我是一位具有中级经验的iOS
开发人员,但幸运的是,或者不幸的是,我从未遇到过像我现在面临的那样的任何内存泄漏问题。我给了一个不是我写的应用程序,它集成了Google Maps,它有很多问题,包括内存泄漏,应用程序使用了Delegate模式,并且我用这样的代码修复了委托类
@objc protocol myDelegate {
// delegate stuff
}
class myClass: UICollectionView {
weak var delegate: myDelegate? = .none
}
我了解了很多有关内存图调试的知识,因此我用它来查找泄漏。现在,分享一些我使用内存图调试器收集的日期
this is the image where I found memory leak indications,但奇怪的是,没有一个单一的迹象表明我们已经编写了文件,但是所有迹象都显示了我们正在使用的核心文件或库中的文件,我不明白,
然后我发现this, its a UserNotificationCenter block,在代码中看到它从不释放已发布的通知。要取消分配它们,
毕竟,应用程序具有CoreData实体,但我发现this, these are all tables using in app,我无法理解它们怎么可能导致内存泄漏,
最后,这些是this整个malloc块,我再次不知道这意味着什么。这与内存泄漏有关系吗?
下图显示了仅从2个或3个屏幕切换时的内存消耗,
P.S这些屏幕中有UICollectionViews
和UITableViews
,
just switched from home to one new screen和switched between 3 screens just once.
我希望我可以从该平台获得帮助。谢谢