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

适用于iOS的Google Maps SDK不断增加内存使用量,第1张

概述我已经构建了一个在地图上显示标记的简单应用程序,我从服务器的 JSON文件加载其x,y,标记是可点击的,所以一旦你在任何标记上它将你带到另一个UIViewController(我们将它命名为BViewController) .我已经监视了内存使用情况,所以每次我从BViewController返回到MapViewController(里面的地图)时,它只是内存使用量的两倍我尝试将其设置为nill或 我已经构建了一个在地图上显示标记的简单应用程序,我从服务器的 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
总结

以上是内存溢出为你收集整理的适用于iOS的Google Maps SDK不断增加内存使用量全部内容,希望文章能够帮你解决适用于iOS的Google Maps SDK不断增加内存使用量所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1099776.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存