Όπως και στην ερώτησή μου «Αφαίρεση MKMapViewσχολιασμοί προκαλεί διαρροές.» Έχω ανακαλύψει ότι αν δημιουργήσετε ένα έργο θέα βάση, προσθέστε UISearchBarκαι MKMapViewσε ΕΕΦ της προβολής, σύρμα μέχρι οι σύνεδροι (δεν είμαι να δημιουργεί μεθόδους, καθώς δεν χρειάζεται πραγματικά να κάνει τίποτα για να προκαλέσει τις διαρροές), σύνδεση στο η MapKit και ανάψουν το έργο, τότε απλά κάνοντας κλικ στα UISearchBarαίτια ένας 1k + διαρροή. Αυτό δεν συμβαίνει αν δεν έχετε τόσο UISearchBarκαι MKMapViewσε μια προβολή. Έχω τα ίδια θέματα κατά τη δημιουργία των απόψεων από τον κώδικα. Σκέφτηκα μια ΕΕΦ μπορεί να συμπεριφέρονται διαφορετικά, αλλά δεν το κάνει.
Είναι η MKMapViewδιαρροή, ή κάνω κάτι λάθος.
Για να αναπαράγουν το θέμα με κωδικό δοκιμάστε την παρακάτω κώδικα - Θα δημιουργήσει ένα νέο έργο «προβολή based εφαρμογή»
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];
}
Αν και έχω διατηρήσει τα subviews με MapView και searchbar, αυτό είναι μάλλον περιττό να αναπαράγουν το πρόβλημα.
Κατά τον έλεγχο αυτόν τον κωδικό πριν από την δημοσίευση εδώ έχω μόνο παρατήρησα ότι αυτή η διαρροή δεν συμβαίνει στον προσομοιωτή - μόνο στο κινητό μου ...













