我构建了一个在 map 上显示标记的简单应用程序,我从服务器的 JSON 文件加载它的 x,y 标记是可点击的,所以一旦你在任何标记上,它就会带你到另一个 UIViewController
(我们将其命名为 BViewController
)。我已经监控了内存使用情况,所以每次我从 BViewController
返回到 MapViewController
(这是里面的 map )时,它只是我尝试设置它的内存使用量的两倍到 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
关于ios - 适用于 iOS 的 Google Maps SDK 不断增加内存使用量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19449727/