【发布时间】:2013-12-06 22:52:25
【问题描述】:
我注意到我的应用程序泄漏了内存,但如果我将MKMapView 取出,内存问题就会消失。
为了测试这个理论,我做了一个非常简单的项目,它有一个视图,它可以推送一个带有MKMapView 的视图,然后弹出并推送。而已。视图控制器中没有代码,一切都通过故事板完成。
如果我来回切换到地图视图,它会在推送和弹出包含地图的视图后开始大约 3MB,这大约是内存的 15 倍,大约是 230MB。
其他人看到了吗?似乎是一个相当大的错误。有没有其他方法可以使用MKMapView 来防止它泄漏这么多?
【问题讨论】:
-
我在我的应用程序中也看到了这种行为,对我来说问题很清楚:这里发生了什么?这是一个真正的内存泄漏吗(看起来是这样)并且有人弄清楚出了什么问题以及如何解决。
-
尝试移除viewDidDisappear方法中的MKMapView,例如:[self.outMapView removeFromSuperview]; self.outMapView = nil;
-
可能应该记录一张雷达票。
-
搜索,您会在此处和其他论坛上找到数十个此类问题 - 提交雷达。由于地图已损坏,您无能为力
-
在 iOS 9.x 中仍然存在问题。我通过在静态变量中存储对 MKMapView 的引用并一遍又一遍地重用同一个 Map 来解决它。
标签: ios objective-c memory-management memory-leaks mkmapview