我已经构建了一个在地图上显示标记的简单应用程序,我从服务器的
JSON文件加载其x,y,标记是可点击的,所以一旦你在任何标记上它将你带到另一个UIViewController(我们将它命名为BViewController) .我已经监视了内存使用情况,所以每次我从BViewController返回到MapViewController(里面的地图)时,它只是内存使用量的两倍我尝试将其设置为nill或从superView中删除它,但没有改变
我的项目使用ARC.
所以请知道如何减少这种用法.
提前致谢
解决方法
我不能在没有看到更多代码的情况下立即告诉导致这种情况的原因,但是对于像GMSMapView这样的“昂贵”对象,我可能会创建一个类别来创建共享GMSMapView并以编程方式添加它,如果您还没有这样做的话.您的类别可能如下所示:
// GMSMapView+MyAdditions.h #import <GoogleMaps/GoogleMaps.h> @interface GMSMapView (MyAdditions) + (GMSMapView *)sharedMapView; @end // GMSMapView+MyAdditions.m #import "GMSMapView+MyAdditions.h" @implementation GMSMapView (MyAdditions) + (GMSMapView *)sharedMapView { static GMSMapView *mapView; static dispatch_once_t onceToken; dispatch_once(&onceToken,^{ CLLocation *location = [[CLLocation alloc] initWithLatitude:40.7127 longitude:-74.0059]; GMSCameraPosition *cameraPosition = [GMSCameraPosition cameraWithLatitude:location.coordinate.latitude longitude:location.coordinate.longitude zoom:16.0]; mapView = [GMSMapView mapWithFrame:[UIScreen mainScreen].bounds camera:cameraPosition]; }); return mapView; } @end