Stop iOS 7 MKMapView von Speicherlecks
Habe ich bemerkt, dass meine app verliert Speicher, aber wenn ich das MKMapView
aus dem Speicher-problem geht Weg.
Die Theorie zu testen, habe ich eine tote einfache Projekt, das eine Sicht, schiebt sich eine Ansicht mit einem MKMapView
im es und knallt und drückt. Nichts mehr. Kein code in der view-Controller, alles geschieht über storyboard.
Wenn ich hin und her gehen, um die Karte anzeigen, es beginnt etwa 3MB nach pushing und popping in der Ansicht der Karte in es das etwa 15-fache an Speicher ist etwa 230 MB.
Jemand anderes gesehen? Scheint ein ziemlich großer Fehler. Gibt es einen anderen Weg, um MKMapView
verhindert wird undicht so viel?
- Ich sehe dieses Verhalten in meiner App auch, und für mich ist die Frage klar: Was ist hier passiert? Ist das ein echter memory leak (es scheint so) und hat jemand herausgefunden, was schief läuft und wie Sie zu beheben.
- Versuchen Sie, entfernen die MKMapView in viewDidDisappear Methode, Beispiel : [self.outMapView removeFromSuperview]; self.outMapView = null;
- wahrscheinlich sollte sich ein radar-ticket.
- suchen und finden Sie Dutzende von diesen Fragen hier und auf anderen Foren - Datei-radar. nichts anderes kann man tun, da die Karte defekt ist
- Noch kaputt in iOS 9.x. Ich löste es durch das speichern einer Referenz auf MKMapView in einer statischen variabled und die Wiederverwendung der gleichen Map immer und immer wieder.
- Siehe stackoverflow.com/a/35601554/723276
- Möglich, Duplikat der iOS6 MKMapView mit eine Tonne von Speicher, auf den Punkt zu Abstürzen der app, sonst jemand bemerken dies?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hatte ich vor dem gleichen Problem und (danke an Stackoverflow) fest, indem Sie
MKMapType
imviewWillDisappear
und freigeben/einstellen der Delegierten zu null.Als es noch sendet Nachricht an die Delegierten.Dies ist dokumentiert in MKMapViewDelegate Protokoll Referenz:
.
hoffe, das hilft
UICollcetionViewCell
so kann ich nicht nennen diesen code ausviewWillDisappear
. Der Aufruf in der Zelledeinit
funktioniert nicht.Swift Version:
Die beste Lösung, die ich gefunden habe, ist eine Instanz von MKMapView in Ihrer Stellvertretung ein, die Sie zuweisen wird es nur einmal.
Dann Wann immer Sie brauchen eine MapView, die Sie gerade verwenden, die aus der Stellvertretung.
In meinem Fall brauchte ich zum reinigen der Anmerkungen aus, sobald der Blick willDisappear ( nicht älter Anmerkungen auf der Karte ).