Является ли MKMapView негерметичных

голоса
1

А также мой вопрос «Удаление MKMapViewаннотаций вызывает утечку.» Я обнаружил , что если вы создаете проект на основе просмотра, добавьте UISearchBarи MKMapViewв СИБ отображения вида, провод до делегатов (я не создавать какие - либо методы , как мы на самом деле не нужно делать ничего , чтобы вызвать протечки), ссылку на MapKit и запустить проект, просто нажав на UISearchBarпричины 1кВт + утечки. Этого не происходит , если вы не имеете , как UISearchBarи MKMapViewв представлении. У меня те же проблемы при создании представления из кода. Я думал, что СИБ может вести себя по- другому, но это не так.

Является ли MKMapViewнеплотно, или я делаю что - то неправильно.

Для того, чтобы воспроизвести проблему с кодом попробовать код ниже - я создал новый проект «вид на основе применения»

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

Несмотря на то, что я сохранил подвиды с MAPview и SearchBar, это, вероятно, нет необходимости, чтобы воспроизвести проблему.

При тестировании этого кода перед публикацией здесь я только заметил, что эта утечка не происходит в тренажере - только на моем телефоне ...

Задан 03/09/2009 в 14:28
источник пользователем
На других языках...                            


2 ответов

голоса
2

Да.

Существует известная утечка на 3.0 в MKMapViews. Утечка происходит, когда вы освобождать MKMapView Это фиксируется в более поздних версиях. Чтобы обойти эту проблему, чтобы иметь один MKMapView и использовать его.

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

Ответил 04/11/2009 в 08:28
источник пользователем

Ответил 22/07/2011 в 10:44
источник пользователем

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