Wenn ich meine App von Xcode laufen, ist es klar, dass ich ein Speicherleck haben:Xcode zeigt Speicherverlust, aber Instruments nicht
Wenn ich eine benutzerdefinierte Viewcontroller den Speicher erhöht sich vorstellen, aber Wenn ich es ablehne, geht es nicht zurück.
So Tool Allocation Ich habe auch Instruments, aber das erzählt eine andere Geschichte:
Wie Sie sehen können, Instrumente Spitzen zeigt, wenn ich das Viewcontroller präsentieren, aber die Speichernutzung fällt zurück vorherige Ebenen, wenn es entlassen wurde.
Ich habe meinen Code mindestens 15 mal überprüft und persönlich finde ich keine Speicherlecks und stimme damit Instrumenten zu. Ich implementierte auch die deinit
Funktion in allen meinen Objekten, die wie so zugewiesen bekommen würden:
deinit {
print("Deinnited \(id)")
}
Und alle Objekte auf die Konsole wie erwartet ausgedruckt.
Was könnte passieren? Ich verwende:
- iOS 9.0
- XCode Version 7.0 (7A220)
- Swift 2,1
Sowohl die Schemata für Run und Profil ist in "debug"
Überprüfen Sie einfach, aber wie Sie die Ansichten ablehnen? Gibt es auch Leerlaufzeiten? Ich habe festgestellt, dass Instrumente nur die Softwareseite zeigen. Es wird dir den Widder nicht zeigen, der einfach noch nicht aufgeräumt ist. Wenn keine Leerlaufzeit vorliegt, kann das Betriebssystem RAM nicht bereinigen. Hast du ein Singleton? oder geteilte Instanz für die Einlösung? Wahrscheinlich ein starker Referenzzyklus. Versuchen Sie, Dinge zu schwach einzustellen. Ideen einfach nur herumwerfen ... –
Wenn Sie mehrfach hintereinander öffnen und schließen, sehen Sie einen steigenden Speicherverbrauch in Xcode? – Darko
@Darko ja. Ich sehe einen steigenden Speicherverbrauch in Xcode, aber nicht in Geräten –