7

マップ上にマーカーを表示する単純なアプリケーションを構築しました。マーカがクリック可能なサーバーからJSONファイルからx、yをロードします。あなたは別のUIViewControllerに行きます(BViewControllerと名を挙げましょう)。私はので、私は(内部のマップがされている)MapViewControllerBViewControllerから戻るたびに、それはちょうど私がnillに設定するか、superViewからそれを削除しようとしたメモリーの使用量を倍のメモリ使用量を監視してきましたが、何もGoogle Maps SDK for iOSはメモリ使用量の増加を続けています

を変更しません

マイプロジェクト使用ARC

どのようにこの使用を減らすか考えてください。事前に
おかげ

+0

Google Maps SDKにメモリがリークしている場合は、できることはあまりありません。最初に 'Instruments'を使ってアプリをチェックしないでください。また、組み込みのApple Mapsを代わりに使用することも考えてください。 –

+0

@RoboticCat返信ありがとう:)返信ありがとう:私は何度もチェックしましたが、この問題が発生したのは、MapViewを再読み込みして前回の割り当てを解除してしまったために、どうやったら再ロードを避けることができるのでしょうか? – mustafa96m

+1

私はこれを推測していますバグ報告に関連するhttps://code.google.com/p/gmaps-api-issues/issues/detail?id=5941はい?その場合は、MyViewControllerのMapViewControllerに参照を保持することができ、サブビューコントローラにナビゲートするたびに再作成する必要はありません。 – Brett

答えて

0

私はすぐに多くのコードを見ることなく、このにつながる何言うことはできませんが、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 
+0

メモリリークはありませんでしたか? – mustafa96m

+0

この場合、マップはメモリに残っています。 –

関連する問題