Es MKMapView con fugas

votos
1

Además de mi pregunta Eliminar MKMapViewanotaciones provoca fugas. He descubierto que si crea un proyecto basado en vistas, agregue un UISearchBary MKMapViewen el NIB de la vista, conecte los delegados (no crearé ningún método, ya que no es necesario que haga nada para activar las filtraciones), enlace en el MapKit y enciende el proyecto, luego simplemente haciendo clic en el UISearchBarcausa una fuga de 1k +. Esto no ocurre a menos que tengas ambos UISearchBary MKMapViewen una vista. Tengo los mismos problemas cuando creo las vistas desde el código. Pensé que un NIB podría comportarse de manera diferente, pero no es así.

Está MKMapViewgoteando, o estoy haciendo algo mal.

Para replicar el problema con el código, pruebe el siguiente código: Creé un nuevo proyecto de aplicación basada en 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];
}

Aunque he conservado las subvistas con mapView y searchBar, probablemente esto sea innecesario para replicar el problema.

Al probar este código antes de publicarlo, acabo de notar que esta fuga no ocurre en el simulador, solo en mi teléfono ...

Publicado el 03/09/2009 a las 14:28
fuente por usuario
En otros idiomas...                            


2 respuestas

votos
2

Sí.

Hay filtraciones conocidas en MKMapViews de 3.0. La pérdida ocurre cuando desasigna el MKMapView Esto se soluciona en versiones posteriores. La solución alternativa es tener un solo MKMapView y volver a utilizarlo.

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

Respondida el 04/11/2009 a las 08:28
fuente por usuario


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