An einem bestimmten (konsistenten) Punkt, an dem meine App ausgeführt wird, wird konsistent die xcode-Fehlermeldung angezeigt
Beendet aufgrund eines Speicherfehlers.
Ich kann den Code, der den Fehler verursacht, nicht finden, aber ich kann anhand von Haltepunkten feststellen, welcher Code sich in der Nähe des Fehlers befindet.
Der Fehler wird direkt nach der Rückgabe einer bestimmten Zelle in meiner Implementierung des
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
UITableViewDataSource
Methode delegieren. Ich kann bestätigen, dass eine gültige UITableViewCell
Methode zurückgegeben wird , aber ich denke, dass es Zeitverschwendung wäre, diese gesamte Methode zu erklären und zu veröffentlichen. Ich vermute jedoch, dass dies durch eine schnelle, massive Speicherzuweisung verursacht werden könnte.
Es heißt definitiv Terminated due to memory error
, kein Gedächtnisdruck.
Ich würde gerne wissen, was Botschaft wirklich bedeutet. Gibt es auch eine Möglichkeit, diese Nachricht zu debuggen? Es wird kein Absturzbericht generiert.
Ich benutze ARC und iOS 7.
quelle
UIWebView
nicht nur super groß, sondern auch super breit (30000px).Antworten:
Ich bekam diesen Fehler und konnte nicht verstehen, was los war.
Nach einigem Suchen fand ich heraus, dass ich vergessen hatte, Zombies zu deaktivieren.
Gehen Sie wie folgt vor, um die Funktion zu deaktivieren:
quelle
Ich hatte das gleiche Problem . ("Aufgrund eines Speicherfehlers beendet") Ich hatte die vor allem Antworten ausprobiert, aber nichts funktionierte für mich. Dann debugge ich meinen Code und stelle fest, dass eine for-Schleife unendlich lange läuft, wobei jedes Mal Speicher einem Array mit dem Wert Null zugewiesen wird. Es verwendet 300 + MB, sodass dieser Fehler auftritt
Vielen Dank.
quelle
Ich hatte genau das gleiche Problem. Ich dachte, es hätte dazu geführt, dass mein Programm einen Speicherverlust hatte oder zu viel Speicher verwendete. Ich benutze Instrumente und habe das Zuweisen von Profil und Programm gut funktioniert. Außerdem habe ich Programm für Gerät lange genug ausgeführt, und es funktioniert auch gut.
Ich benutze auch iPad 3rd Gen zum Debuggen, es könnte aufgrund der Verlangsamung des Geräts oder des Fehlers dazu führen, dass es nur Xcode ist und von einem Xcode-Problem ausgeführt wird. Nicht das Problem des Speicherverlusts oder der Zuordnung.
Wenn Sie mit Instrumenten und App auf dem Gerät selbst sicherstellen und arbeiten
quelle
Ich habe Tesseract für OCR verwendet und als mein Zieltext gescannt wurde, sollte ein GIF abgespielt werden. Als das GIF zu spielen begann, gab es eine Speicherspitze von 70-80 MB auf 450 MB. Das Problem war, dass GIF zu viel Speicher beanspruchte, die App abstürzte und Xcode diese Nachricht anzeigte. Also habe ich die betroffene imageView aus der Übersicht des ViewControllers entfernt.
Danach würde die App immer noch auf 450 MB ansteigen, dann aber sofort freigegeben und auf 40 MB reduziert
quelle
Gerät neu starten hat bei mir funktioniert. Die Meldung "Aufgrund eines Speicherfehlers beendet" wurde nicht mehr angezeigt.
quelle
Bearbeiten Sie das Schema. Unter Diagnose finden Sie verschiedene Optionen zum Schutz der Zuordnungen. Einzelheiten finden Sie in der Dokumentation .
Die Frage ist: Sagt es wirklich "wegen Speicherfehler beendet" und nicht "Druck"? Checken Sie Instrumente ein, wenn Ihre App nur noch wenig Arbeitsspeicher hat. Wenn die App scheinbar nur noch wenig Arbeitsspeicher hat, sollten Sie sich darauf konzentrieren, unabhängig von der genauen Meldung.
quelle
Mit Xcode 11 wurde mein Projekt im
Debug
Modus gestartet . Ich mache einige Bildaufnahmen / bearbeite / kehre zum Benutzer zurück und das ist nichts, was du verwenden kannstDebug
. Sobald ich in denRelease
Modus wechselte, lief alles gut.quelle
Ich habe mich dieser Art von Problem aufgrund von Unaufmerksamkeit gestellt.
Ich habe eine Funktion aufgerufen, die imageView als Unteransicht hinzufügt in:
override func layoutSubviews() { super.layoutSubviews() }
Dies verursachte eine enorme Speichernutzung. Achten Sie also auf diese Art von Dingen!
quelle
Ich hatte ein ähnliches Problem in Xcode 11.3, bei dem die Kamera jedes Mal anrief, wenn wir auf die Schaltfläche "Erneut versuchen" klicken.Wenn dies mehrmals durchgeführt wird, kommt es zu einem Absturz.
Dies wurde behoben, als wir Zombie-Objekte deaktivierten. Unten sind Schritte:
Führen Sie nun Ihr Projekt aus. Es sollte gut funktionieren.
quelle
Was mir aufgefallen ist, ist, dass ich diesen Fehler auch bekomme, wenn ich meine App über ein Kabel auf dem Gerät laufen lasse und es für eine lange Zeit im Leerlauf lasse.
Apple spricht dies an und es könnte sein, dass die App im Leerlauf ist und sie einfach beendet.
quelle
Ich habe diesen Fehler erhalten, weil ich einer collectionView-Zelle mit einer Größe von 40 x 40 Fotos in voller Größe hinzugefügt habe. Lesen Sie die 2 Kommentare unter der Frage von @matt. Ich musste die Bilder verkleinern, bevor ich sie der Zelle hinzufügte.
quelle