私はすぐに多くのコードを見ることなく、このにつながる何言うことはできませんが、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
Google Maps SDKにメモリがリークしている場合は、できることはあまりありません。最初に 'Instruments'を使ってアプリをチェックしないでください。また、組み込みのApple Mapsを代わりに使用することも考えてください。 –
@RoboticCat返信ありがとう:)返信ありがとう:私は何度もチェックしましたが、この問題が発生したのは、MapViewを再読み込みして前回の割り当てを解除してしまったために、どうやったら再ロードを避けることができるのでしょうか? – mustafa96m
私はこれを推測していますバグ報告に関連するhttps://code.google.com/p/gmaps-api-issues/issues/detail?id=5941はい?その場合は、MyViewControllerのMapViewControllerに参照を保持することができ、サブビューコントローラにナビゲートするたびに再作成する必要はありません。 – Brett