GMSMapViewを作成および破棄する単純なUIViewControllerを作成しました。
- (void)viewDidAppear:(BOOL)animated
{
if ( !m_disappearing_bc_segue )
{
[super viewDidAppear:animated] ;
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude: self.location.latitude
longitude: self.location.longitude
zoom:9 ] ;
m_mapView = [GMSMapView mapWithFrame:CGRectMake(0, 0, 320, 420) camera:camera];
m_mapView.myLocationEnabled = NO ;
[m_mapView setMapType: kGMSTypeTerrain] ;
m_mapView.delegate = self ;
[self.view addSubview:m_mapView] ;
[self.view sendSubviewToBack:m_mapView] ;
}
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated] ;
[m_mapView clear] ;
[m_mapView stopRendering] ;
[m_mapView removeFromSuperview] ;
m_mapView = nil ;
}
私はAllocationsインストゥルメントでInstrumentsを使用しました。テストは簡単です。UINavigation ViewControllerで、ビューをプッシュし、押し戻して繰り返します。上記のGMSMapViewを含むビューをプッシュおよびポップするたびに約40kbのリークが発生します。これを説明するためにInstrumentsのスクリーンショットがありますが、stackoverflowでは投稿できません。興味があればメールで誰かに送ることができます。
私は何か間違ったことをしているのですか、それとも何かを逃しているのですか?