Czy MKMapView nieszczelny

głosy
1

Jak również moje pytanie „Zdejmowanie MKMapViewAdnotacje powoduje przecieki”. Odkryłem, że jeśli tworzysz projekt oparty jest widok, dodać UISearchBari MKMapViewdo widoku za NIB, drut się delegaci (ja nie tworzę żadnych metod jak w rzeczywistości nie trzeba robić nic, aby wywołać przecieki), ogniwo MapKit i odpalić projekt, a następnie kliknięcie w UISearchBarprzyczyn 1k + przeciekać. To nie zdarza się chyba, że masz zarówno UISearchBari MKMapVieww widoku. Mam te same problemy podczas tworzenia widoków z kodem. Myślałem stalówkę może zachowywać się inaczej, ale tak nie jest.

Jest MKMapViewnieszczelny, albo robię coś złego.

Replikować problem z kodem spróbować poniższy kod - stworzyłem nowy projekt aplikacji „Widok” w oparciu

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

Chociaż ja zachowywało subviews z MapView i searchBar, to chyba niepotrzebne replikować problemu.

W testowaniu tego kodu przed opublikowaniem tutaj Właśnie zauważyłem, że ten przeciek nie występuje w symulatorze - tylko w moim telefonie ...

Utwórz 03/09/2009 o 14:28
źródło użytkownik
W innych językach...                            


2 odpowiedzi

głosy
2

Tak.

Znany jest przecieki na 3,0 za MKMapViews. Przeciek występuje podczas deallocate MKMapView Zostało to poprawione w późniejszych wydaniach. Rozwiązaniem jest posiadanie jednego MKMapView i używać go.

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

Odpowiedział 04/11/2009 o 08:28
źródło użytkownik


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