我读过其他StackOverflow的问题和解答,并了解这是自iOS6(或通过设计,必须释放委托,然后查看,谁知道)以来的错误。我不知道为什么或者没有如何修复。内存泄漏在MapKit iOS8
Anywho,我已经从其他的答案添加的热修复程序(下文,为未来的读者):
- (void) viewDidDisappear:(BOOL)animated
{
[super viewDidDisappear:animated];
[self applyMapViewMemoryHotFixOnDisappear];
}
- (void)applyMapViewMemoryHotFixOnDisappear{
[self applyMapViewMemoryHotFix];
self.mapView.showsUserLocation = NO;
self.mapView.delegate = nil;
self.locationManager.delegate = nil;
[self.mapView removeFromSuperview];
self.mapView = nil;
}
- (void)applyMapViewMemoryHotFix{
switch (self.mapView.mapType) {
case MKMapTypeHybrid:
{
self.mapView.mapType = MKMapTypeStandard;
}
break;
case MKMapTypeStandard:
{
self.mapView.mapType = MKMapTypeHybrid;
}
break;
default:
break;
}
self.mapView.mapType = MKMapTypeStandard;
}
-(void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated
{
[self applyMapViewMemoryHotFix];
}
然而,这个问题我有是,为什么不内存下降到MapKit前水平?
有别的我失踪?这是预期的行为?有没有内存泄漏判断由配置文件,但显然有些东西是不正确的...
我看到的一样。找到了解决办法? – thejaz 2015-05-15 16:34:20
不!说实话,甚至不应用修改区域上的“修补程序”。 '内存泄漏'(如果它是这样的话)没问题,并且在真实设备上不明显,并且它不会增长,这很好。 – SparkyRobinson 2015-05-16 15:03:26
同意,我注意到它在设备上比在模拟器中好得多。 – thejaz 2015-05-19 21:32:38