我有一个非常简单的应用程序。 1个带有2个viewControllers的navigationController。
第一个视图只有一个按钮。 第二个视图有一个地图视图(MKMapView)。 我检查了这个地图视图的show currentlocation属性 我创建了outlet,然后使用Builder Interface连接所有内容。
在第二个的dealloc方法中,我将nil设置为mapview的委托,然后释放mapview outlet。
mapView.delegate = nil; [mapview发布];
当我点击view1中的按钮时,将加载view2,然后点击后退按钮。如果我正常做,一切都很好。但如果我这么快就做,重复多次。该应用程序将崩溃。 如果我没有发布mapView或者我没有检查showcurrentlocation属性,那么app效果很好。
我无法弄清楚为什么会这样。有人帮我解决这个问题。非常感谢 !
答案 0 :(得分:2)
我在控制器类中的修复是...
(void)dealloc
{
mapView.showUserLocation = NO; // Work around bug in MKMapView
[super dealloc];
}
答案 1 :(得分:0)
尝试通过添加Zombie乐器的乐器启动您的应用。它应该显示过度释放的对象。您还应该使用VM跟踪器添加Allocations工具,以了解内存消耗随时间的变化情况。通过这种方式,您可以快速得到答案。
P.S。更多代码会有所帮助。