Является ли MKMapView негерметичным
Как и мой вопросУдалениеMKMapView
Аннотации вызывают утечки. " Я обнаружил, что если вы создаете проект на основе представления, добавьтеUISearchBar
а такжеMKMapView
в поле зренияS NIB, подключить делегатов (яЯ не создаю никаких методов, как мына самом деле нужно сделать что-нибудь, чтобы вызвать утечки), ссылку в MapKit и запустить проект, затем просто нажмите наUISearchBar
вызывает утечку 1к +. Это нене может произойти, если у вас нет обоихUISearchBar
а такжеMKMapView
в представлении. У меня такие же проблемы при создании представлений из кода. Я думал, что NIB может вести себя по-другому, но это не такт.
Является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, вероятно, в этом нет необходимости, чтобы повторить проблему.
При тестировании этого кода перед публикацией здесь яЯ только что заметил, что эта утечка не происходит в симуляторе - только на моем телефоне ...