Est-MKMapView qui fuit

voix
1

En plus ma question « Suppression des MKMapViewannotations provoque des fuites. » Je l' ai découvert que si vous créez un projet basé vue, ajouter un UISearchBaret MKMapViewdans NIB, câbler les délégués de la vue (je ne suis pas créer de méthodes que nous ne devons pas vraiment à quoi que ce soit pour déclencher les fuites), lien le MapKit et feu le projet, puis en cliquant simplement les UISearchBarprovoque une 1k + fuite. Cela ne se produit pas à moins que vous avez à la fois UISearchBaret MKMapViewdans une vue. J'ai les mêmes problèmes lors de la création des vues à partir du code. Je pensais qu'un NIB pourrait se comporter différemment, mais il ne fonctionne pas.

Est MKMapViewqui fuit, ou que je fais quelque chose de mal.

Pour reproduire le problème avec le code essayer le code ci-dessous - j'ai créé un nouveau projet « d'application de la vue »

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

Bien que j'ai retenu les sous-vues avec Mapview et SearchBar, ce qui est probablement inutile de reproduire le problème.

En testant ce code avant la publication ici, je viens de remarquer que cette fuite ne se produit pas dans le simulateur - que sur mon téléphone ...

Créé 03/09/2009 à 14:28
source utilisateur
Dans d'autres langues...                            


2 réponses

voix
2

Oui.

Il y a une fuite connue sur MKMapViews de 3,0. La fuite se produit lorsque vous désallouez la MKMapView Ceci est corrigé dans les versions ultérieures. La solution est d'avoir un seul MKMapView et le réutiliser.

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

Créé 04/11/2009 à 08:28
source utilisateur


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