Diğer StackOverflow Sorularını ve Yanıtlarını okudum ve bunun iOS6'dan beri bir hata olduğunu (veya tasarımla, delege dağıtmak zorunda kaldıktan sonra görüntüleyen, kim bilir). Neden ya da nasıl düzeltilmediğini bilmiyorum.MapKit'teki Bellek Sızıntısı iOS8
Anywho, ben (gelecek okuyucular için, aşağıda) diğer cevaplar sıcak düzeltmeleri ekledik:
- (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];
}
Ancak, ben, neden hafıza MapKit seviyelerine önce çökmez edilir gereken soru ?
Kaçırdığım başka bir şey var mı? Bu beklenen davranış mı? Profiler tarafından yargılanan bir bellek sızıntısı yok, ama belli ki bir şey doğru değil ...
Aynı bakınız);
siz düzeltin ve öldürürsün, hem de gelecekte ürününüzü tehlikeye düşürecek Güçlü Referans Bisikletlere projenizi kontrol edebilirsiniz Umut. Herhangi bir çözüm bulundu? – thejazHayır!Dürüst olmak gerekirse, bölgedeki 'düzeltmeyi' bile değiştirmeyin. 'Bellek sızıntısı' (eğer bu bile olsa), gerçek bir cihazda iyi ve farkedilemez, ve güzel olanı da büyütmez. – SparkyRobinson
Kabul ediyorum, cihazda simülatörden çok daha iyi olduğunu fark ettim. – thejaz