mus*_*96m 7 google-maps memory-management objective-c ios google-maps-sdk-ios
我已经构建了一个在地图上显示标记的简单应用程序,我从服务器的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
Run Code Online (Sandbox Code Playgroud)