È MKMapView che perde

voti
1

Così come la mia domanda Rimozione di MKMapViewannotazioni provoca perdite. Ho scoperto che se si crea un progetto basato vista, aggiungere una UISearchBare MKMapViewin NIB della vista, cavo fino i delegati (non sto creando alcun metodo come non abbiamo effettivamente bisogno di fare nulla per innescare le fughe di notizie), in collegamento il MapKit e sparare il progetto, poi semplicemente cliccando nelle UISearchBarcause un 1k + perdite. Questo non accade se non si dispone sia UISearchBare MKMapViewin una vista. Ho gli stessi problemi quando si creano le viste dal codice. Ho pensato che un pennino potrebbe comportarsi in modo diverso, ma non è così.

È MKMapViewche perde, o sto facendo qualcosa di sbagliato.

Per replicare il problema con il codice di provare il codice qui sotto - Ho creato un nuovo progetto applicazione basata vista

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];
}

Anche se ho mantenuto il subviews con MapView e Searchbar, questo è probabilmente inutile replicare il problema.

In test di questo codice prima di pubblicare qui ho appena notato che questa perdita non si verifica nel simulatore - solo sul mio telefono ...

È pubblicato 03/09/2009 alle 14:28
fonte dall'utente
In altre lingue...                            


2 risposte

voti
2

Sì.

V'è un noto perdite su MKMapViews 3.0. La perdita si verifica quando si deallocare la MKMapView Questo è fissato nelle versioni successive. La soluzione è quella di avere un unico MKMapView e riutilizzarlo.

https://devforums.apple.com/message/129740#129740

Risposto il 04/11/2009 a 08:28
fonte dall'utente


Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more