Ich erhalte einen EXC_BAD_ACCESS (oder einen malloc-Fehler) in der folgenden Codezeile:
%Vor%Das macht für mich keinen Sinn, da es auf eine String-Konstante und nichts anderes zugreifen sollte. Es ist normalerweise ein EXC_BAD_ACCESS, aber es ist gelegentlich der folgende Fehler (in derselben Zeile):
%Vor%Der Stack-Trace für den malloc-Fehler (ich habe es schwer, einen vollen Fehler zu bekommen) lautet:
%Vor%Es kann von Bedeutung sein, dass es sich bei der fraglichen Datei um eine Objective-C ++ - Datei mit aktiviertem ARC handelt. Die Methode selbst ist riesig, also habe ich hier gesetzt, um die Frage kurz zu halten. Die fragliche Zeile ist Zeile 94. Jede Idee, wie man sie reparieren oder debuggen kann, wird sehr geschätzt. Danke im Voraus!
Ich erhalte jetzt auch Seitenfehler. Aus dem Debugger:
%Vor%In den Kommentaren schlug ich vor:
Das Problem ist nicht mit
NSLog
. Das Problem ist wahrscheinlich, dass etwas Speicher kaputt geht und der Absturz inNSLog
verursacht wird. Es würde wahrscheinlich helfen, wenn Sie die Methode, die Sie verwenden, aufschlüsseln können, um das Lesen zu erleichtern, vielleicht sogar die Funktionalität in ein neues Objekt zu trennen. Vermeiden Sie auch die Verwendung von magischen Zahlen (3 und 6).
Es scheint, dass @haldean mit diesem Vorschlag gegangen ist und das Problem aufgespürt hat. Ich kann keinen Kredit dafür beanspruchen, die harte Arbeit des Aufspürens des Problems wirklich zu machen, aber ich bin froh, dass der Vorschlag geholfen hat.
Tags und Links objective-c objective-c++ memory-management cocoa-touch