私の質問と同様に、「MKMapViewアノテーションを削除するとリークが発生します。私は、ビューベースのプロジェクトを作成する場合、ビューのNIBにUISearchBarとMKMapViewを追加し、デリゲートを結びつけていることを発見しました(実際にはリークを引き起こすために何もする必要はありません。 MapKitのリンクをクリックしてプロジェクトを起動し、UISearchBarをクリックするだけで1k +のリークが発生します。ビュー内にUISearchBarとMKMapViewの両方がある場合を除き、これは起こりません。コードからビューを作成するときも同じ問題があります。 NIBは異なった振る舞いをするかもしれないと思ったが、そうではない。MKMapViewはリークですか
MKMapViewが漏れていますか、間違っていますか?
コードで問題を複製するには、以下のコードを試してみてください - 私は
- (void)viewDidLoad { [super viewDidLoad]; UISearchBar * tmpSearchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0.0,0.0,self.view.frame.size.width,40.0)]; [self.view addSubview:tmpSearchBar]; [self setSearchBar:tmpSearchBar]; [tmpSearchBar release]; MKMapView *tmpMapView=[[MKMapView alloc] initWithFrame:CGRectMake(0.0,0.0,self.view.frame.size.width,self.view.frame.size.height)]; tmpMapView.showsUserLocation=FALSE; [self.view insertSubview:tmpMapView atIndex:0]; [self setMapView:tmpMapView]; [tmpMapView release]; } - (void)dealloc { [mapView release]; [searchBar release]; [super dealloc]; }TestMapViewFromCodeViewController.m TestMapViewFromCodeViewController.h
#import <UIKit/UIKit.h> #import <MapKit/MapKit.h> @interface TestMapViewFromCodeViewController : UIViewController { UISearchBar *searchBar; MKMapView *mapView; } @property (nonatomic, retain) MKMapView *mapView; @property (nonatomic, retain) UISearchBar *searchBar; @end
新しい "ビューベースのアプリケーション" プロジェクト
を作成しました
私はubviewsをmapViewとsearchBarで使用すると、おそらくこの問題を再現する必要はありません。唯一の私の携帯電話に...
どのように? あなたの自己回答に基づいて、私はSDKのメモリ管理ガイドをよく読んでください。私がiPhoneを使い始めたとき、私はガベージコレクタを持っていないので、しばらくしていたので、何度も漏れてしまった。 –
コードは不要 - UISearchBarをドロップしてから、MKMapViewをIBのビューにドロップするだけです。それを複製するために必要なことはすべてそれです。しかし、私はMacの前でコードバージョンを調べます。上記の – Andiih
コード。私はまた、このリークが私のデバイスでのみ発生することに気づいた(シミュレータではない)。私はまだiPhone OSのバージョンを3.0.1上に更新していない。 – Andiih