ios - 适用于 iOS 的 Google Maps SDK 不断增加内存使用量

标签 ios objective-c google-maps memory-management google-maps-sdk-ios

我构建了一个在 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/

相关文章:

objective-c - 多线程渲染仅在 iOS 13 上崩溃

objective-c - 像 Numbers 中的标记文本字段

javascript - Google map 无法在 iPhone/iPad worklight 6.2 应用程序上运行

ios - 在 iOS 13 中恢复场景的 UI 状态,同时仍然支持 iOS 12。没有 Storyboard

ios - 如何在 Swift 中将 JSON 数组解析为数组

objective-c - iOS 5 : Make NSString Category include NSCFConstantString?

javascript - Rails 谷歌地图集成 Javascript 问题

javascript - 谷歌地图多边形悬停可点击

ios - Firebase 在模拟器中工作但在 iPhone 上不工作

ios - 将相同的 View Controller 插入堆栈会产生奇怪的行为