gdb remote hat einen Fehler zurückgegeben: E08 beim Aufruf des Completion-Blocks (EXC_BAD_ACCESS)

8

Ich benutze ARC und auf iOS6 bekomme ich manchmal einen seltsamen Absturz: gdb remote hat einen Fehler zurückgegeben: E08

Im Stacktrace befindet sich die Methode vorher in einer Zeile, die einen Completion-Block aufruft. Ich lese viel über Blöcke und ARC, aber ich bin immer noch nicht sicher, wenn ich sie im folgenden Kontext verwende:

(vereinfachte Methoden und etwas Code weggelassen)

%Vor%

Aufrufcode:

%Vor%

Wenn ich den Block und die Werte um ihn herum überprüfe, scheinen sie in Ordnung zu sein. Ich habe auch NSZombie auf. Mein completionBlock sollte automatisch kopiert werden, da auf ihn innerhalb des Blocks verwiesen wird.

Was fehlt mir hier? Ich habe Abstürze auf iOS5 und 4.3 auch gesehen, aber nie gdb remote gab einen Fehler zurück: E08. Die Info vom Debugger war auch in diesen Fällen nicht hilfreich. Ich verwende PLWeakCompatibility , damit ich __weak unter iOS4.3

unterstützen kann     
splinter 09.10.2012, 22:29
quelle

1 Antwort

0

Haben Sie dieses Problem immer noch?

Warum brauchst du in diesem Fall das schwache Selbst? Es sieht nicht so aus, als würdest du dich selbst in dieser Situation gefangen nehmen. Stürzt der Code immer noch ab, wenn Sie ihn weglassen?

Übrigens, ich denke, Ihre method1-Implementierung wurde ein bisschen unordentlich, als Sie versuchten, es für Ihre Frage zu vereinfachen.

%Vor%

Sieht nicht wie eine gültige Methodenimplementierung aus. Sollte es nicht so sein wie:

%Vor%     
Tieme 04.02.2013 18:10
quelle