如何解决iOS14的NWPathMonitor中的内存泄漏
在iOS14上使用NWPathMonitor
时,我刚刚发现了可重现的内存泄漏。在iOS13上也可以重现,我怀疑12也可以,但只能测试iOS 13。
要重现该泄漏,您所要做的就是分配NWPathMonitor
的实例(无需保留对其的引用),并且一旦执行,您将在调试时看到该泄漏的出现。在仪器中使用“泄漏”模板或Xcode内存图。这在模拟器和设备上都是可重现的。
func application(_ application: UIApplication,didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Just allocate the instance and immediately the leaks will show in instruments
_ = NWPathMonitor()
return true
}
解决方法
编辑:我发现这是我的错-我忘记在类的NWPathMonitor
中调用cancel()
的{{1}}方法,这是造成泄漏的原因。留在这里,以防将来其他人发现它有用。
原始答案: 反馈已与Apple一起打开,并交叉发布到OpenRadar:https://openradar.appspot.com/radar?id=4969412406804480。希望这可以节省其他人像我一样追逐自己的尾巴,却发现这是Network框架中的错误!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。