it-swarm.com.de

Xcode - Meine App stürzt ab und der Fehler lautet "Ungültiger Zeiger aus freier Liste entschlüsselt *** Einen Haltepunkt in malloc_error_break zum Debuggen setzen"

Meine App läuft perfekt auf dem Simulator. Aber wenn ich sie auf dem Gerät starte, stürzt die App ab und es wird ein Anzeigefehler angezeigt:

"malloc: * Fehler für Objekt 0x17415d0c0: Ungültiger Zeiger aus der freien Liste aus der freien Liste * einen Haltepunkt in malloc_error_break zum Debuggen gesetzt";

Ich habe in malloc_error_break einen Haltepunkt zum Debuggen gesucht und festgelegt, aber das Problem kann immer noch nicht gefunden werden. Ich habe versucht, das Projektschema zu ändern, Zombie Object aktiviert, kann aber keine Antwort finden.

Ich versuche auch, ein Instrument zu verwenden, aber ich bin nicht gut darin.

13
Nijat2018

Ich habe diesen Fehler mit Xcode 8 unter iOS 8.3 behoben. Ich habe gerade das Implementierungsziel von 8.3 auf 8.0. Geändert. Wenn der Fehler jetzt nach der Migration zu Xcode 8 erscheint und Ihr Gerät unter funktioniert iOS 8 steuern, kann es eine vorübergehende Entscheidung sein.

UPD: Xcode 8.1 Beta ist dieser Fehler behoben.

13
Andy Sander

Dieses Problem wurde mit Xcode 8 behoben. Die Vorbereitung eines iOS10-kompatiblen Builds, der auf die empfohlene Swift Migration 2.3 aktualisiert wurde, läuft einwandfrei unter iOS9 und iOS10, stürzt jedoch unter iOS8.4 ab. Ich habe die Änderungen im Code und im Main.storyboard rückgängig gemacht und den gleichen Inhalt auf iOS8 mit Xcode 7.3 erstellt, der meine Probleme behebt. 

2
Dani.Rangelov

Ich traf auch diesen seltsamen Fehler, ich googelte und die Leute sagten, es sei Swifts Fehler, wurde nicht behoben. Ich debugiere Zeile für Zeile, finde die Lösung heraus.

Der Grund, warum dieser Fehler auftritt

In EditRecordVC habe ich eine generische Typfunktion func update<RO>(operation: RO) where RO : RealmOperation, RO.R == EditRecordVC.R

In seiner Unterklasse ConflictedRecordEditVC überschreibe ich die Funktion, ich gebe update ein, und Xcode hilft mir dabei, die ganze Funktion override func update<RO>(record: Record?, operation: RO?) where RO : RealmOperation, RO.R == Record abzuschließen.

Führen Sie den Code aus. Nachdem die überschriebene Funktion ausgeführt wurde, wird dieser Fehler angezeigt. Der Xcode wird an einer beliebigen Zeile angehalten. Niemand kann feststellen, dass diese Funktion von dieser Funktion verursacht wird.

Ich debugiere Zeile für Zeile und finde heraus, dass ich den generischen Typ in override func update<RO>(operation: RO) where RO : RealmOperation, RO.R == Record ändern muss. Alles wird wieder gut funktionieren.

Ich habe vergessen, als ich das hinzugefügt habe. aus Versehen und Xcode ist nicht wütend.

Überprüfen Sie also Ihre generische Typfunktion und stellen Sie sicher, dass sie mit der Superklasse genau gleich ist

0
ygweric