Ich stecke seit so vielen Stunden mit einem dummen schlechten Zugang fest. Ich kann es nicht finden.
Ich hoffe, dass einige von euch in der Lage sein werden, mir die Antwort ins Licht zu zeigen.
Im folgenden Code erscheint es in der Zeile: NSString * stringCallVisit = [[NSString alloc]initWithFormat:.....
Ich kann nicht verstehen, alle Objekte sind lokal der Methode außer dem Parameter theIntervention.
Wenn ich die Methode NSString * stringCallVisit = [[NSString alloc]initWithFormat:...
kommentiere, wird der schlechte Zugriff nicht angezeigt, auch wenn ich id obj = callVisit.injectionby;
anstelle von; Also nehme ich an, dass der schlechte Zugriff nicht vom callVisit-Objekt, sondern sicherlich vom stringCallVisit-Objekt stammt.
Aber warum ich es nur auf dem Zinken instanziiere, wo der schlechte Zugang erscheint.
Danke für Ihre Hilfe,
%Vor%BEARBEITEN:
Ich habe getan, was Sie gesagt haben, aber ich bin nicht in der Lage, das Protokoll zu verstehen, und ich habe keine Adresse für das Info-Malloc erhalten. Ich bin ein bisschen verloren:)
BEARBEITEN Hier ist das Protokoll. Aber es ist seltsam, aber den App-Absturz an einem anderen Ort kennen.
%Vor%Beachten Sie, dass Gewicht, Höhe und Fls doppelte Werte sind und Sie dennoch einen% d (Ganzzahl) Platzhalter für sie verwenden. Du wirst in diesem XML lustige Werte bekommen. - Magma vor 45 Minuten
Ich bestätige nur% d durch% .2f ersetzen Sie das Problem! Vielen Dank für Ihre Hilfe und Ihre Zeit! Und speziell Magma für seine Augen :) -
Legen Sie NSZombieEnabled , MallocStackLogging und guard malloc im Debugger. Wenn Ihre App abstürzt, geben Sie dies in der gdb-Konsole ein:
%Vor% Ersetzen Sie 0x543216
durch die Adresse des Objekts, das den Absturz verursacht hat, und Sie erhalten einen viel nützlicheren Stack-Trace und es hilft Ihnen, die genaue Zeile in Ihrem Code zu lokalisieren, die das Problem verursacht.
Weitere Informationen finden Sie in diesem Artikel.
Bearbeiten: Es sieht so aus, als ob Ihnen nicht mehr genug Speicher zur Verfügung steht. Haben Sie eine didReceiveMemoryWarning
Methode implementiert? Wenn dies der Fall ist, legen Sie einen NSLog ein, um herauszufinden, ob Sie wenig Speicher haben.
Verwenden Sie XCode 3 oder 4? Wenn Sie 3 verwenden, empfehle ich dringend ein Upgrade auf 4.
Wenn du 4 verwendest, drücke CMD-I, um es in Instrumenten zu starten, und wähle das "Zombies" -Profil. Führen Sie dann die App-Ausführung zum Absturzpunkt durch, und die Instrumente fangen sie ab. Sie erhalten ein graues Popup-Callout mit einem Link, klicken Sie auf den Link, der Sie zum Zuordnungsverlauf führt. Ganz rechts befindet sich das aufrufende Modul, in dem Sie die markierte Zeile im Quellcode, in dem der Speicher zugewiesen wurde, doppelt anklicken können.
Mein Verdacht ist Ihr callVisits-Array, das nicht von einer init- oder copy-Methode zurückgegeben wird - Sie sollten es nicht explizit freigeben, es sei denn, Sie verwenden init oder copy / mutableCopy-Methoden oder Sie behalten es explizit bei.
Tags und Links objective-c iphone ios cocoa-touch exc-bad-access