我正在一个项目中,我有一个ViewController,其中有MapView。MapView加载时收到内存警告
现在这个页面被加载和解散几次。
我第一次实现的是,我在xib中添加了MapView,然后每当这个页面加载时,活的叮咬用于增加10mb。
解决方法1
那么对于这个问题做研究,我发现是使用单一对象的MKMapView和定义它的AppDelegate,并用它所有的时间之后。
我试过了,它在一定程度上减少了内存使用量,但是在某些时候应用程序因为收到内存警告而再次崩溃。
现在,如果我在崩溃后再次启动应用程序,那么它在第一次打开MapView页面时就会崩溃,此时的实时叮咬约为11mb,仅为012mb。
这是为了在AppDelegate中
添加的MapView
mapView=[[MKMapView alloc]initWithFrame:CGRectMake(0, 0, 300, 450)];
[self.window addSubview:mapView];
mapView.delegate=self;
mapView.hidden=YES;
这是我用来加载MapView类的代码的代码。
- (void)viewDidLoad
{
[super viewDidLoad];
latittude=[[[NSUserDefaults standardUserDefaults]valueForKey:@"LATITUDE"] floatValue];
longitude=[[[NSUserDefaults standardUserDefaults] valueForKey:@"LONGITUDE"] floatValue];
APPDELEGATE.mapView.frame=CGRectMake(0, 140, 320, 290);
}
-(void)viewDidAppear:(BOOL)animated
{
APPDELEGATE.mapView.hidden=NO;
CLLocationCoordinate2D location;
location.latitude = latittude;
location.longitude = longitude;
Annotation *a;
a=[[Annotation alloc]initWithCoordinate:location];
[APPDELEGATE.mapView addAnnotation:a ];
}
-(void)viewWillDisappear:(BOOL)animated
{
APPDELEGATE.mapView.hidden=YES;
}
溶液2
第二溶液我发现了改变MapView类型时视野中消失。
所以我改变了它的类型,把它的委托改为了无,并从ViewWillDisappear的superview中移除。
即使这并没有什么区别。
任何想法我怎么能克服这个问题?
谢谢
memoryWarning本身并不是一个问题,它告诉你系统内存不足。 你可以显示viewDidLoad,viewWillAppear(和didAppear)和viewWillDisappear(和willDisappear)? –
@MarcoPace我编辑了我的问题。请查找您提到的所有方法。 – AtWork
set mapview = nil in viewWillDisAppear – karthika