UIScrollView EXC_BAD_ACCESS Absturz im iOS SDK

Ich habe eine iPhone SDK-Anwendung mit mehreren Ansichten, die angezeigt und ausgeblendet werden, wenn der Benutzer Inhalte erstellt. Nachdem ich die Anwendung für eine Weile auf einem Gerät verwendet habe, stürzt Folgendes ab:

Program received signal:  “EXC_BAD_ACCESS”.
(gdb) backtrace
#0  0x33369ebc in objc_msgSend ()
#1  0x320e5248 in -[UIScrollView(UIScrollViewInternal) _scrollViewAnimationEnded] ()
#2  0x338b4a14 in -[NSObject performSelector:withObject:] ()
#3  0x320e5098 in -[UIAnimator stopAnimation:] ()
#4  0x320e4b7c in -[UIAnimator(Static) _advance:] ()
#5  0x320e4a34 in LCDHeartbeatCallback ()
#6  0x34350e60 in HeartbeatVBLCallback ()
#7  0x332e91c0 in IOMobileFramebufferNotifyFunc ()
#8  0x316532f8 in ?? ()
#9  0x33866b50 in __CFMachPortPerform ()
#10 0x338ae52a in CFRunLoopRunSpecific ()
#11 0x338adc1e in CFRunLoopRunInMode ()
#12 0x3434e1c8 in GSEventRunModal ()
#13 0x32002c30 in -[UIApplication _run] ()
#14 0x32001230 in UIApplicationMain ()
#15 0x00002ff8 in main (argc=1, argv=0x2ffff550) at /Developer/svn/MyCompany/iPhone/MyApplication/Other Sources/main.m:14

Wie Sie aus dem Trace ersehen können, ist der Aufruf von main die einzige Erwähnung meines Codes.

Ich habe Build and Analyze über Xcode ausgeführt und es auch so eingerichtet, dass der Clang-Analyzer für mein Projekt über das Terminal ausgeführt wird. Beide können keine Probleme im Code finden. Ich verwende eine sehr aktuelle Release-Version des iOS-SDK (ich habe die Version 4.1 noch nicht heruntergeladen, aber die Version, die ich verwende, ist die Version, die vor Version 4.1 veröffentlicht wurde.)

Auch habe ich die Anwendung in Instruments mit dem Simulator ausgeführt, und die App weist keine Speicherverluste auf.

Ich versuche gerade, das @ zu verwendeNSZombieEnabled Variable und sehen, ob das etwas findet, aber das Problem ist, dass ich die Anwendung für 30 bis 40 Minuten oder so verwenden muss, bevor es abstürzt, und ich vermute, dassNSZombieEnabled kann mir nicht einmal helfen, das Problem zu finden.

Die Abstürze, die ich gesehen habe, scheinen zu sein, wenn eine modale Ansicht einen Delegaten im übergeordneten Ansichtscontroller aufruft. Der übergeordnete Ansichtscontroller führt dann eine Verarbeitung durch, bevor er den modalen Ansichtscontroller schließt. Der Absturz enthält einige Verweise auf Animations- und Bildlaufansichten, aber ich bin nicht sicher, was ich tun könnte, um Probleme zu verursachen. Hat jemand Vorschläge für Dinge zu suchen?

BEARBEITEN Ich habe das @ gesetNSZombieEnabled -Flag in der Anwendung und auf dem Gerät wird in der Konsole die folgende Meldung angezeigt:

2010-09-11 17:10:33.970 MyApplication[9321:207] *** 
-[MyViewController respondsToSelector:]: message 
sent to deallocated instance 0x7489480

Soweit ich das beurteilen kann, setze ich die in der Anwendung verwendeten Delegaten so, dass sie in den Deallocs aller meiner Klassen gleich Null sind, sodass ich nicht sicher bin, wo ich als Nächstes suchen soll.

Ich habe versucht, das @ zu verwendmalloc_history PID-Adresse Befehl auf diese, aber es sagte, dass es den Prozess nicht finden konnte, versuchte ich 9321, 9321: 207 und 207. Auch, wenn ich versuche, das @ zu verwendMallocStackLogging Variable, das Programm wird nicht auf dem Gerät ausgeführt, ich bekomme eine Reihe vonmalloc: Stapelprotokollverzeichnisnachrichten in der Konsole können nicht erstellt werden, und ein Programmabsturz ist aufgetreten.

Oh, und übrigens, ich kann die Zombies nicht verwenden, um Instrumente zu überprüfen, da sie anscheinend nicht mit einem Gerät funktionieren und ich nicht den gleichen Absturz im Simulator verursachen kann.

Antworten auf die Frage(18)

Ihre Antwort auf die Frage