Neben meiner Frage „Entfernen MKMapViewAnmerkungen verursacht Leckagen.“ Ich habe entdeckt , dass , wenn Sie eine Ansicht basierte Projekt erstellen, ein hinzufügen UISearchBarund MKMapViewin die NIB Ansicht, verdrahten die Delegierten (Ich schaffe keine Methoden , wie wir eigentlich gar nichts tun müssen , um die Lecks zu triggern), Link die MapKit und feuern das Projekt, dann einfach in den Klick UISearchBarUrsachen ein 1k + Leck. Dies geschieht nicht , es sei denn , Sie beide haben UISearchBarund MKMapViewin einer Ansicht. Ich habe die gleichen Probleme , wenn die Ansichten von Code zu erstellen. Ich dachte , ein NIB anders verhalten könnte, aber es funktioniert nicht.
Ist MKMapViewundicht, oder mache ich etwas falsch.
Um das Problem zu replizieren versuchen mit Code den Code unten - Ich habe eine neue „Sicht basierte Anwendung“ Projekt
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
TestMapViewFromCodeViewController.m
- (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];
}
Obwohl ich die Subviews mit mapView und SearchBar beibehalten habe, ist dies wahrscheinlich nicht notwendig, das Problem zu replizieren.
Bei der Prüfung dieses Code vor der Veröffentlichung hier habe ich gerade bemerkt, dass dieses Leck im Simulator nicht auftritt - nur auf meinem Handy ...













