在我的应用程序中,我有UINavigationController
。与MKMapView的多个ViewControllers
在一些页面中,我获得了一个MKMapView
作为后视图(允许更改地图查看覆盖图UIView
UI,因此我无法将其作为图像)。 在某些组合中,可以有大约3个MKMapView
分配。
的问题是,每个MKMapView
需要近60MB ,所以内存跳起来180+ MB只能从地图。更不用说如果用户用map打开更多的ViewController,他会得到一个OutOfMemoryException
。
所有地图具有相同的内容,我试着移动从ViewController
到另一个地图,但根据StackOverflow的另一篇文章,从ViewController
移动UIView
另一个是对MVC,更何况它从主叫ViewController
中删除。
基本上,因为所有的地图都包含相同的内容,并且我希望它们包含所有注释,所以最好只移动地图,但我很难与此相关。
我已经有一个解决方案,它是从它的superView中删除MKMapView
,并在viewWillAppear
realloc它,但这似乎并不是最好的主意。
我想你试图加载一个新的地图视图,通过检索用户的位置和每个视图控制器的坐标...尝试在应用程序委托方法中使用通知,并向所有对象广播消息当位置更新这种方式可以减少内存以及代码......你只需要从需要地图数据的视图控制器中设置一个监听器对象,并且不要忘记在viewdiddisappear中删除监听器......如果你还没有试过这种方法,让我知道我你会发布一个示例代码...快乐编码! – nravichan
嗨,更少的代码是好的,谢谢你的建议,但仍然。由于内存中的地图太多,我可以愉快地到达OutOfMemory。 – user2558461
@NiranjanRavichandran不保存任何明显的内存量。 OP正在尝试的工作是什么.. –