ich den Rat in mehreren SO Fragen zur Verfügung befolgt habe, wie this one, um MKMapView
aus dem Speicher freizugeben - meinen Code untenMKMapView Release Speicher
- (void)viewDidDisappear:(BOOL)animated {
[super viewDidDisappear:animated];
self.map.mapType = MKMapTypeHybrid;
self.map.showsUserLocation = NO;
self.map.delegate = nil;
[self.map removeFromSuperview];
self.map = nil;
self.locationManager.delegate = nil;
}
In Teil, es funktioniert, aber nicht ganz. Lassen Sie mich einige Daten bereitstellen.
Unten ist die Speicherzuweisung Aufnahme von Instruments.
Die beiden roten Fahnen (Generationen) zeigen die Zustände, bevor ich MKMapView
in einem modalen View-Controller angezeigt und nachdem ich sie entlassen haben. MKMapView
scheint freigegeben zu werden. Wenn ich zum Beispiel Statistikstacks in Instrumente für MKMapView
filtere, erscheint das Objekt tatsächlich, wenn die modale Ansicht angezeigt wird, und verschwindet, sobald es geschlossen ist. Nachdem ich jedoch die Kartenansicht ausgeblendet habe, habe ich immer noch mehr als 30 MB Speicher, der nicht freigegeben wurde.
Die Daten der Generation B (zweite rote Flagge) zeigen, dass eine große Anzahl von Objekten (und Nicht-Objekten) diesen Speicher enthält.
Wenn ich längere Details eines dieser Instanzen betrachten, zeigt es in der Regel ein Stack-Trace, die private Klassen verfügt, die, glaube ich, sind das
Zeichnung zur KarteWeiß jemand, Wie kann man all diese Daten freigeben? Gibt es einen Cache, den ich putzen könnte/sollte?
haben Sie es geschafft, dieses Problem zu lösen? – azimov
Leider noch nicht .. – artooras
Haben Sie Glück dabei, den Speicher zu löschen? – sridvijay