Frage

Ich habe eine kleine Anwendung mit iPhone 3.x SDK geschrieben. Die App funktioniert gut auf Gerät/Simulator 3.x. Wenn ich jedoch zu Gerät/Simulator 4 wechsle, wird es direkt beendet, wenn ich zwischen den Registerkarte Seiten navigiere. Hier ist das Protokollformular ~/Bibliothek/Protokolle/CrashReporter,

Ausnahmetyp: Exc_bad_access (Sigbus) Ausnahmecodes: Kern_protection_failure unter 0x00000000000003 Abstürze Thread: 0 Versandwarteschlange: com.apple.main-thread

Anwendungsspezifische Informationen: OBJC_MSGSEND () Auswahlname: ISKINDOFCASS: iPhone Simulator 4.0 (211.1), iPhone OS 4.0.2 (iPhone/8A400A)

Thread 0 Crashed: Dispatch queue: com.apple.main-thread 0 libobjc.A.dylib 0x02502a97 objc_msgSend + 27 1 UIKit 0x00303f20 -[UIView(Internal) _didMoveFromWindow:toWindow:] + 955

Könnten Sie mir bitte Hilfe geben, danke im Voraus.

Linkou Bian E -Mail/MSN: linkou.bian@gmail.com

War es hilfreich?

Lösung

Ich habe das geschrieben Blog, um zu verstehen und zu debuggen exc_bad_access

Grundsätzlich vermitteln Sie einen Zeiger, der auf Speicher hinweist, der Ihrem Prozess nicht zugeordnet ist. Die Hauptgründe, warum dies passieren könnte, sind

  1. Sie verwenden ein Objekt, das behandelt wurde
  2. Der Haufen ist korrupt

Die Dinge, die Sie tun sollten, um dies zu debuggen:

  1. Bauen und analysieren. Die Berichte über Lecks sind schlecht, aber nicht mit diesem Problem zusammenhängen - Sie möchten nach Problemen von zu wenigen Halten suchen

  2. Einschalten Zombies und rennen im Debugger. Jetzt wird keiner Ihrer Objekte behandelt, aber wenn sie eine Zahlung von 0 haben, beschweren sie sich beim Debugger, wenn Sie sie verwenden.

Es gibt andere Tipps im Blog, die etwas schwieriger zu erklären sind

Andere Tipps

Ich bin Vumeter -Funktionalität mit Live -Radio -Streaming entwickelt. Es funktioniert gut, wenn ich Simulator Version 4.0 begegne, aber in Geräten (3GS, 4.0) funktioniert es nicht, dass ich keine aktualisierten Werte von Audiolevels erhalte. Nehmen wir zum ersten Mal an, als Methode Call I Value Levels: 0,001817, Peaklevels: 0,005463 sein bleibt gleich, während im Simulator der gleiche Code gut funktioniert.

levels[0]        = self.audioLevels[0].mAveragePower ;
peakLevels[0]    = self.audioLevels[0].mPeakPower ;   

Vorschlag oder Rat müssen ...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top